gpt4 book ai didi

javascript - 将最后一个元素保留在具有相同属性的数组中

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

假设我有这个数组:

bucket.bucketList =[];

bucket.addItem = function(item) {
bucket.bucketList.push(item);
}

该函数将一个名为 foo 的对象插入数组在每次鼠标滚动时:

一些 foo's 也有一个属性,foo.name = "something";

问题是,根据名称属性名称删除所有重复项,同时保留最新的重复项的最佳方法是什么?

我已经在我的项目中使用 jQuery,所以如果 jQuery 有比 vanilla JS 更优雅的方式来做这件事,我会非常乐意使用它。

最佳答案

此代码删除所有重复名称,保留数组中的最后一个。

您可以向后遍历数组并删除任何具有您已经看到的名称的项目,使用一个对象来跟踪您已经看到的名称。通过向后遍历,您可以保留最后一个,并且在从数组中删除当前条目时无需进行任何数组索引更正:

var dict = {}, item;
for (var i = bucket.bucketList.length - 1; i >= 0 ; i--) {
item = bucket.bucketList[i];
if (item.name) {
// if already in the dict, remove this array entry
if (dict[item.name] === true) {
bucket.bucketList.splice(i, 1);
} else {
// add it to the dict
dict[item.name] = true;
}
}
}

关于javascript - 将最后一个元素保留在具有相同属性的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622963/

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