数组去重
一、ES6最常用Set去重
Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。
二、双重for循环
外层循环元素,内层循环时比较值。
function unique(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) { //第一个等同于第二个,splice方法删除第二个
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
let arr = [1, 1, 'true', 'true', true, true, 15, 15];
console.log(unique(arr) // [ 1, 'true', true, 15 ]
三、indexOf或includes去重
当数组内没有该元素时,indexOf返回-1,则把它push进新数组。
function unique(arr) {
var array = [];
for (var i = 0; i < arr.length; i++) {
if (!array.includes( arr[i]) ) {
array .push(arr[i])
}
}
return array;
}
四、filter去重
原始数组中元素的索引等于当前索引值时返回,否则返回当前元素