<> ES6中Set方法
??该方法是效率更高,代码简单,思路清晰,缺点是可能会存在兼容性问题。
function clearRepeat(arr) {
//ES6中还对Array新增了一个静态方法Array.from(),可以把Set集合转化成数组形式。
//ES6中新增的扩展运算符,可以强制Set集合类型转换成数组。
return [...new Set(arr)];
}
let array = clearRepeat([1, 2, 3, 4,3, 2, 1]);
console.log(array);
<> 利用对象的属性不能相同的特点进行去重
??该方法优点是效率较高,缺点是占用了较多空间,使用了的额外空间查询对象和一个新的数组。
var arr = [0,1,2,3,4,3, 2, 1];
function fun(arr) {
var newBrr = [];
var obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i]]) {
obj[arr[i]] = ‘abc‘;
newBrr.push(arr[i]);
}
}
return newBrr
}
var newArr=fun(arr);
console.log(‘newArr‘, newArr);
<> 利用过滤器filter和indexOf方法
??该方法是可以在去重的时候插入对元素的操作,可拓展性强,但是去重时所耗的时间要比前面2种方法要长。
var brr = [0, 0, 1, 2, 3, 4, 5, 5];
function fun(arr) {
return arr.filter((num, index) => {
return arr.indexOf(num) === index;
});
}
console.log(fun(brr));
原文:https://www.cnblogs.com/sfzxf/p/14341930.html