javascript - 如何用另一个对象数组过滤对象数组并获得差异

标签 javascript arrays object

我担心如何用另一个对象数组过滤对象数组并获取第一个对象数组中没有的项目

例如:

let firstData = [
    {
        name: 'A',
        title: 'A'
    },
    {
        name: 'B',
        title: 'B'
    },
    {
        name: 'C',
        title: 'C'
    }
]


let secondData = [
    {
        name: 'B',
        title: 'B'
    }
]

在这种情况下,我想获取每个对象数组中没有的项目名称:A 和名称:C

例如如何将它们与名称属性进行比较?

最佳答案

尝试更通用的:没有 secondData 的 firstData(左)加上没有 firstData 的 secondData(右)

let left  = firstData.filter(x=> !secondData.find(y=> x.name==y.name));
let right = secondData.filter(x=> !firstData.find(y=> x.name==y.name));
let result = left.concat(right);

let firstData = [
    {
        name: 'A',
        title: 'A'
    },
    {
        name: 'B',
        title: 'B'
    },
    {
        name: 'C',
        title: 'C'
    }
]


let secondData = [
    {
        name: 'B',
        title: 'B'
    },
    
    {
        name: 'D',
        title: 'D'
    }
]

let left  = firstData.filter(x=> !secondData.find(y=> x.name==y.name));
let right = secondData.filter(x=> !firstData.find(y=> x.name==y.name));
let result = left.concat(right);

console.log(result);

关于javascript - 如何用另一个对象数组过滤对象数组并获得差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612573/

相关文章:

带有多个 OR 和 AND 的 Javascript If 条件

Javascript 加密 SJCL GCM 无法解密我加密的内容

javascript - 按一次迭代后停止的日期值对 JSON 数组进行排序

javascript - 计算一个类在另一个类中的元素

javascript - AngularJs:将 ng-model 绑定(bind)到单选按钮列表

iPhone - 用压缩的 plist 文件的内容填充一个数组

python - 从 numpy 数组创建字符串列表(非循环解决方案)

javascript - 如何对 Javascript 对象进行排序,或将其转换为数组?

java - Wicket:克隆对象时出现内部错误

PHP OOP 入门