数组去重有多种方法,比较简单常用的是自定义遍历函数通过indexOf比较去重
function uniq (arrary){
let result = [];
let i;
let length = arrary.length;
for(i = 0;i < length; i++){
if(result.indexOf(arrary[i]) < 0){
result.push(arrary[i])
}
}
return result;
}
var arr = [1,3,2,5,2,3,4]
var aa = uniq(arr)
console.log(aa);// [1, 3, 2, 5, 4]
现在es6出了新函数set对象,set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。所以可以通过转化为set对象去重。
function uniq(arrary){
let set = new Set(arrary);
return[...set];
}
var arr = [1,2,3,4,5,2,4];
var aa = uniq(arr);
console.log(aa)
set方法是非常简单的方法,但因是es6新增对象部分浏览器还不支持。
多数情况选择第一种方法。