我有一个 arr = ['a', 'b', 'c']
的数组(或 Set?),我想向其中添加 d
,这可以通过 arr.push('d')
完成。
但我只想要数组中的唯一值,并且我希望最新添加的值位于数组的前面。
所以如果我先添加 d
数组应该变成 ['d', 'a', 'b', 'c']
如果我现在添加 b
数组应该变成 ['b', 'd', 'a', 'c']
等
应该是这样的吗
function addElement(arr, element) {
if (arr.includes(element)) {
arr.splice(arr.indexOf(element, 1));
}
arr.unshift(element);
}
我想这可以用集合来完成,因为集合只能包含唯一值。
最佳答案
你可以使用 Set
并提前删除项目然后添加。要获得想要的顺序,您需要反转呈现的数组。
function addToSet(v, set) {
set.delete(v);
set.add(v);
}
var set = new Set;
addToSet('d', set);
addToSet('c', set);
addToSet('b', set),
addToSet('a', set);
addToSet('d', set);
console.log([...set].reverse());
关于javascript - 推送并删除数组的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39846428/