遍历对象数组并返回具有来自ID数组的ID的对象

时间:2016-06-14 20:32:26

标签: javascript arrays angularjs object lodash

我想使用Lodash的全部功能,我不知道为什么我不能用Lodash执行此操作。

我有一个包含所有ID的38个对象的数组。我还有另一组Id。我需要将这些对象映射到对象数组,并在新的对象数组中使用它们。

我正在寻找这样的解决方案:

 var workOrder.model.Lands = [{
                ID: "123",
                LandArea: "",
                LandAreaDescription: "something",
                LandAreaNo: 0,
                Value: null,
                Text: null,
                Status: true,
                GeoJsonData: null,
                GeoJsonCenter: null,
                Blocks: Array[3]
            },...];

var landIDs = [1, 2, 3, 4];


_.each(workOrder.model.Lands, function(land){
     _.each(landIDs, function(id){
         console.log(id);
         if(land.ID === id){
              workOrder.selectedLandArea.push(land);
          }
     });
});

这不起作用,实际上归还了Lands集合中的所有项目。将这些物品拿出来的最佳解决方案是什么?

NO JQUERY

提前致谢

更新 添加变量以提高清晰度

1 个答案:

答案 0 :(得分:1)

Demo

以下是相关代码(假设objs是对象数组,ids是id数组)

_.filter(objs, function(obj) {
  return _.includes(ids, obj.ID);
});

逻辑上,您正在根据另一组中包含的成员键过滤一组。

相关问题