gpt4 book ai didi

javascript - 如何从数组中删除具有相同值的项目

转载 作者:行者123 更新时间:2023-12-02 15:31:58 25 4
gpt4 key购买 nike

我正在数组之间进行一些检查。它是在 NodeJS 中。

问题是:

我有一个数组:

var items = [];

然后我在其中插入一些值:

items[0] = {a:1, b:222};
items[1] = {a:1, b:333};
items[2] = {a:1, b:222};
items[3] = {a:1, b:4444};
items[4] = {a:1, b:222};

所以,我需要做的是:抛出所有数组并删除具有相同“b”值的项目。

示例:

过滤后,它应该看起来像:

items[0] = {a:1, b:222};
items[1] = {a:1, b:333};
items[2] = {a:1, b:4444};

如您所见,索引 2 和 4 的元素消失了,因为它们与索引 0 处的元素具有相同的 b 值。

如何用 JavaScript 编写这段小代码?

最佳答案

您正在寻找 Array.prototype.filter 函数:

var bValues = {};
items = items
.filter(function(item) {
return bValues[item.b] === undefined && (bValues[item.b] = true);
});

它的工作原理是检查我们是否看到了特定的bValue,如果看到则返回false。如果没有,我们会在 bValues 映射上设置该值并返回 true

编辑:我喜欢 @dandavis 的巧妙建议,使用 this 绑定(bind)参数来减少变量名称:

items = items
.filter(function(item) {
return this[item.b] === undefined && (this[item.b] = true);
}, {});

关于javascript - 如何从数组中删除具有相同值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33241165/

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