gpt4 book ai didi

javascript - 如果另一个数组中不存在,如何删除数组中的对象

转载 作者:行者123 更新时间:2023-11-30 07:07:12 25 4
gpt4 key购买 nike

如果另一个数组中不存在,我想删除数组中的对象。我尝试搜索并在此 link 中找到了类似的问题但有不同的数组源。

这是来自上面链接的示例:

var check = [1, 2, 3];
var allowed = [1];

var filtered = check.filter(function(item) {
return allowed.indexOf(item) > -1;
});

console.log(filtered);

上面的示例删除数组中的数字 check 如果不存在于数组 allowed 中。在我的例子中,源数组包含一个对象,如下例所示:

var check = [
{
name: 'Peter',
location: 'florida'
},
{
name: 'Robert',
location: 'California'
}
];

var allowed = [
{
name: 'Robert',
location: 'Boston'
}
];

var filtered = check.filter(function(item) {
return allowed.indexOf(item.name) > -1;
});

console.log(filtered);

我尝试运行代码,结果是一个空数组。

我期望的结果:

[
{
name: 'Robert',
location: 'California'
}
]

任何人都可以帮我做出我期望的结果吗?

最佳答案

您可以使用 Array#find()

var check = [{
name: 'Peter',
location: 'florida'
},
{
name: 'Robert',
location: 'California'
}
];

var allowed = [{
name: 'Robert',
location: 'Boston'
}];

var res = check.filter(function(cItem) {
return allowed.find(function(aItem) {
return cItem.name === aItem.name
})
})

console.log(res)

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

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