gpt4 book ai didi

javascript - 如何根据子条件JS从数组中删除对象

转载 作者:行者123 更新时间:2023-11-30 08:18:32 26 4
gpt4 key购买 nike

我正在尝试根据属性从数组中删除/或拼接对象。如果属性字符串包含一个字符串,则从数组中删除该对象。因此,根据循环遍历字符串数组的属性过滤对象。

我有一个这样的对象

let obj = [
{
"name": "product one"
},
{
"name": "product two"
},
{
"name": "item one"
},
{
"name": "item three"
}
]

一个数组

let arr = ['one', 'item'] 

所以我希望我的最终或返回对象看起来像

[
{
name: "product two"
}
]

我试过 for 循环、double for 循环、过滤器和 include,但都失败了。需要注意的一件事是我正在导入的 json 文件有超过 20,000 条记录,所以 idk 如果那是它可能失败的原因。

 var intersection = obj.filter(function (e) {
for (const word of arr) {
return !e.name.includes(word)
}
});

最佳答案

要查找数组中的项目,请在 arr 上使用 some 并反转返回的 bool 值:

const intersection = obj.filter(({ name }) => !arr.some(e => name.includes(e)));

如果有很多记录,那么上述方法可能会太慢 - 这种方法更有效:

const re = new RegExp(arr.join("|"));
const intersection = obj.filter(({ name }) => !re.test(name));

关于javascript - 如何根据子条件JS从数组中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702084/

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