首页 > 解决方案 > 如何通过在javascript中比较它们来仅从数组中获取特定元素?

问题描述

我有两个数组。第二个数组 B 有一些与数组 A 相同的元素。现在在比较数组之后,arrayA 应该只有那些不在 arrayB 中的值。请告诉我最好的方法。

let arrayA = [{ "displayName": "John" }, { "displayName": "Sandra" },{ "displayName": "Peter" }]
let arrayB = [{ "name": "Bobby" }, { "name": "John" }, { "name": "Sandra" }]

arrayA.forEach(function(cust, index) {
  arrayB.forEach(function(comp) {
    if (comp.name == cust.displayName) {
      delete arrayA[index] 
    }
  })
})
    console.log("Final"+JSON.stringify(arrayA))

输出 -> 最终[null,null,{"displayName":"Peter"}]

标签: javascriptarraysnode.jsdata-structures

解决方案


过滤并仅保留其他数组中不存在的那些

let arrayA = [{ "displayName": "John" }, { "displayName": "Sandra" },{ "displayName": "Peter" }]
let arrayB = [{ "name": "Bobby" }, { "name": "John" }, { "name": "Sandra" }]

arrayA = arrayA.filter(a =>
  !arrayB.find(b => a.displayName === b.name)
);

console.log("Final"+JSON.stringify(arrayA))


推荐阅读