Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于javascript中的键合并两个对象数组_Javascript_Join_Merge_Mapping_Underscore.js - Fatal编程技术网

基于javascript中的键合并两个对象数组

基于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

我正在致力于将geoJSON形状文件与普查数据合并,以便进行web映射

每个数组中的每个元素都有一个大地水准面,我想在此基础上进行连接

我已经成功地做到了这一点,但我想看看是否有人知道一个更好的方法,如果有什么我正在做的大规模错误

我这样做的方式是根据GeoID属性的值,用下划线对每个数组进行排序。我验证了每一个都有一个测试

//- 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();