javascript - 将整数数组与对象数组进行比较并返回属性

标签 javascript comparison lodash

给定以下对象数组:

var arrayOfObjs = [{
    id: "d8eed6df-9f12-47d4-5b71-3352a92ebcf0",
    typeID: 2
  },
  {
    id: "270d8355-d8b6-49c4-48ac-97a44422c705",
    typeID: 3
  },
  {
    id: "sdks7878-d8b6-49c4-48ac-97a44422c705",
    typeID: 4
  }
];

还有一个整数数组:

var arrayOfInts = [2, 4];

如果整数数组与 arrayOfObjects 匹配,我将如何比较两者并返回 ID 数组。

返回应该是:

var matchingIDs = [
    "d8eed6df-9f12-47d4-5b71-3352a92ebcf0", 
    "sdks7878-d8b6-49c4-48ac-97a44422c705"
];


var missingIDs = ["270d8355-d8b6-49c4-48ac-97a44422c705"];

最佳答案

使用array.prototype.filterarray.prototype.includesarray.prototype.map

var datas = [{
    id: "d8eed6df-9f12-47d4-5b71-3352a92ebcf0",
    typeID: 2
  },
  {
    id : "270d8355-d8b6-49c4-48ac-97a44422c705",
    typeID: 3
  },
  {
    id : "sdks7878-d8b6-49c4-48ac-97a44422c705",
    typeID: 4
}];

var arrayOfInts = [2, 4];

var matchingIDs = datas.filter(d => arrayOfInts.includes(d.typeID)).map(e => e.id);

var missingIDs= datas.filter(d => !arrayOfInts.includes(d.typeID)).map(e => e.id);

console.log('matchingIDs: ', matchingIDs);
console.log('missingIDs: ', missingIDs);

关于javascript - 将整数数组与对象数组进行比较并返回属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48404459/

相关文章:

javascript - 销毁 map 实例的正确方法是什么?

Javascript删除合并某些属性的对象列表中的重复项

javascript - 需要功能帮助处理此数据结构

javascript 函数调用

javascript - 如何更改每个 angularjs 的相似 ng-repeat 值

javascript - 为什么 jQuery Mobile 使用数据角色属性而不是类?

c# - 字典的多键查找

C++:按字典顺序比较字符串

c# - 从 C# 中的 DateTime 中提取日期部分

javascript - Lodash 的纯 JavaScript 替换 `omit()`