gpt4 book ai didi

javascript - 从另一个对象数组中删除对象数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:11:12 28 4
gpt4 key购买 nike

假设我们有以下要根据属性 id 进行比较的对象数组:

a = [{'id':'1', 'name':'a1'}, {'id':'2', 'name':'a2'}, {'id':'3', 'name':'a3'}]

b = [[{'id':'2', 'name':'a2'}, ]

如何从 a 中减去 b?所以我们有 c = a - b 应该等于 [ {'id':'1', 'name':'a1'}, {'id':'3 ', '名称':'a3'}].

我试过用这个:

var c= a.filter(function(item) {
return !b.includes(item.id);
});

但还是不行。

最佳答案

这个解决方案怎么样?它假设'b'也是一个数组,因此对于'a'的每个元素,您检查'b'中是否有匹配的对象。如果存在匹配对象,则在过滤器函数中返回 false,以便丢弃该元素。

var a = [{
'id': '1',
'name': 'a1'
}, {
'id': '2',
'name': 'a2'
}, {
'id': '3',
'name': 'a3'
}]
var b = [{
'id': '2',
'name': 'a2'
}]

var c = a.filter(function(objFromA) {
return !b.find(function(objFromB) {
return objFromA.id === objFromB.id
})
})

console.log(c)

关于javascript - 从另一个对象数组中删除对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017770/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com