JavaScript去重的几种方式

JavaScript去重🤔

indexOf

往新数组里面push元素,如果indexOf找不到元素就是不存在,意味着在新数组里唯一

1
2
3
4
5
6
7
8
9
10
11
12
13
function duplicate(array) {
if (array && array.length) {
let newArray = [];
for (let i = 0; i < array.length; i++) {
if (newArray.indexOf(array[i]) === -1) {
newArray.push(array[i]);
}
}
return newArray;
} else {
return array;
}
}

使用ES6中新添加的数据结构——Set

效果如头图;Set类似于数组,但是成员的值都是唯一的,没有重复的值。

1
2
3
4
5
6
7
8
function duplicateSet(array) {
let newArray = new Set();
array.forEach(s => {
newArray.add(s);
});
return [...newArray];
// return Array.from(newArray);
}
1
2
3
function duplicateSet(array) {
return [...new Set(array)];
}
坚持原创技术分享,您的支持将鼓励我继续创作!