繁体   English   中英

根据javascript中的键合并两个对象数组

[英]Merge two arrays of objects based on key in javascript

我正在将geoJSON shapefile与人口普查数据合并以进行Web映射。

每个数组中的每个元素都有一个GeoID,我想以此为基础进行连接。

我已经成功地做到了这一点,但是我想看看是否有人知道更好的方法,如果有什么事情我做得很错。

我这样做的方法是根据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
}
); 

使用开源项目jinqJs非常容易

小提琴

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM