基于javascript中的键合并两个对象数组
我正在致力于将geoJSON形状文件与普查数据合并,以便进行web映射 每个数组中的每个元素都有一个大地水准面,我想在此基础上进行连接 我已经成功地做到了这一点,但我想看看是否有人知道一个更好的方法,如果有什么我正在做的大规模错误 我这样做的方式是根据GeoID属性的值,用下划线对每个数组进行排序。我验证了每一个都有一个测试基于javascript中的键合并两个对象数组,javascript,join,merge,mapping,underscore.js,Javascript,Join,Merge,Mapping,Underscore.js,我正在致力于将geoJSON形状文件与普查数据合并,以便进行web映射 每个数组中的每个元素都有一个大地水准面,我想在此基础上进行连接 我已经成功地做到了这一点,但我想看看是否有人知道一个更好的方法,如果有什么我正在做的大规模错误 我这样做的方式是根据GeoID属性的值,用下划线对每个数组进行排序。我验证了每一个都有一个测试 //- Create array of features sorted by GeoID var sortedShapes = _.sortBy(sfTracts.feat
//- Create array of features sorted by GeoID
var sortedShapes = _.sortBy(sfTracts.features, function(o) { return o.properties.GEOID10});
//- Create array of features (w/o shapes) by GeoID
var sortedData = _.sortBy(kidsInPov, function(o) { return o.GeoID} );
然后我使用下划线.map来组合它们
var count = 0;
var joinedData = _.map(sortedShapes,
function(o) {
// add data desired from dataset
o.properties.HD01_VD01 = sortedData[count].HD01_VD01;
o.properties.HD01_VD02 = sortedData[count].HD01_VD02;
o.properties.HD01_VD10 = sortedData[count].HD01_VD10;
count++;
return o
}
);
使用开源项目非常容易 看
请给出一个起始数据和所需输出数据的示例,更多的人可以帮助您提供解决方案。
//Use jsJinq.com open source library
var list1= [{Location: 'NY', People: 200}, {Location: 'TX', People: 500}];
var list2= [{Location: 'NY', State: 'New York'}, {Location: 'TX', State: 'Texas'}]
var result = jinqJs().from(list1).join(list2).on('Location').select();