gpt4 book ai didi

javascript - 如果属性值匹配,则从数组中删除对象

转载 作者:行者123 更新时间:2023-11-28 14:33:08 24 4
gpt4 key购买 nike

我有一组看起来像这样的对象:

{
"brandid": id,
"brand": string,
"id": id,
"categoryId": id,
"category": string,
"factory": string,
"series": string,
"status": 0,
"subStatus": 1
}

如果系列属性值与数组中其他对象中的另一个系列属性值匹配,则需要从数组中删除该对象。

目前我尝试将它们推送到重复的数组:

      const seriesResCopy = seriesRes;
const dupArray = []
for (const thing of seriesResCopy) {
for (const item of seriesRes) {
if (thing.series === item.series) {
dupArray.push(item);
}
}
}

但这不起作用。从示例中我发现我的问题是我没有要查找的重复值的明确列表。

任何帮助将不胜感激。

最佳答案

您可以使用一组系列来过滤掉重复项:

const exists = new Set();
seriesRes = seriesRes.filter(({series}) => !exists.has(series) && exists.add(series));

这使用:Array.prototype.filter、对象解构和一些逻辑技巧。

同样可以通过改变数组来完成:

const exists = new Set();
for(const [index, {series}] of seriesRes.entries()) {
if(!exists.has(series) {
exists.add(series);
} else {
seriesRes.splice(index, 1);
}
}

关于javascript - 如果属性值匹配,则从数组中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50766232/

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