按值过滤对象

3

假设我有:

let object1 = [{id: 15, name: name1}, {id: 0, name: name2}, {id: 98, name: name3}];
let object2 = [{id: 2, action: action}, {id: 88, action: action}, {id: 0, action: action}];

故意让ID号不匹配。 如何从第一个对象中获取那些ID在第二个对象中没有出现的名称数值?

编辑:我已经尝试过

let results;
for (let i = 0; i < object1.length; i++) {
         results = object2.filter(element => { return element.id != object1[i].id } );
    }

也尝试使用.map()来使其工作,但没有成功。


2
你的问题听起来像是你什么都没试过,却期望得到一个免费的代码服务。这会让人非常反感。如果你已经尝试过了,请向我们展示你的努力。 - Cid
4
抱歉,让我来简单解释一下我已经尝试过的东西! 我正在编辑原始帖子。 - Ville
1个回答

3
你可以在其中一个数组上使用filter(),并使用find()来过滤掉另一个数组中不存在的id对应的对象。

let oArr1 = [{id: 15, name: "name1"}, {id: 0, name: "name2"}, {id: 98, name: "name3"}];
let oArr2 = [{id: 2, action: "action"}, {id: 88, action: "action"}, {id: 0, action: "action"}];

const result = oArr1.filter(x => !oArr2.find(y => y.id === x.id));

console.log(result);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接