如果JavaScript中已存在对象参数值,则从数组中删除对象

除了针对我的情况使用双 for 循环之外,我无法找到最佳解决方案。

假设我有一个数组对象:

let array = [{param1:"A", param2:"B"}, {param1:"C", param2:"D"},{param1:"A", param2:"E"}]

param1除了使用两个 forloops 之外,如何根据值删除重复项?

到目前为止,我使用以下方法检测重复项:

const param1Values = new Set(array.map(item => item.param1));
const hasDuplicates = paramValues.size != array.length;

我该如何清洁,array所以我只有:

[{param1:"A", param2:"B"}, {param1:"C", param2:"D"}]

编辑

我们想保留第一个实例param1并删除其余的

回答

您可以使用 aSet并在集合上使用闭包过滤数组。

const
    array = [{ param1: "A", param2: "B" }, { param1: "C", param2: "D" }, { param1: "A", param2: "E" }],
    result = array.filter(
        (seen => ({ param1 }) => !seen.has(param1) && seen.add(param1))
        (new Set)
    );

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }


以上是如果JavaScript中已存在对象参数值,则从数组中删除对象的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>