这里写自定义目录标题
数组去重在js操作中是非常常见的。很多时候对接后台时,后台返回的数据中就有重复的数据,这时我们前端会把这些数据给重新过滤,在渲染到页面。
es6以前:
var arr = [1,2,3,5,4,5,6,2,3,2,1]; //要操作的数据
var arr2 = []; //定义一个新数组
for(var i = 0; i < arr.length; i++) {
if(arr2.indexOf(arr[i]) == -1){ //判断新数组里面是否有重复的数据
arr2.push(arr[i]); //没有就把数据push到新数组
}
}
console.log(arr2); //循环结束后打印新数组
//通常我们会将这个操作封装成一个函数来使用
function repeatArr(arr){
var arr2 = [];
arr = arr.constructor == Array ? arr : [] //判断传进来的参数是否为数组
for(var i = 0; i < arr.length; i++) {
if(arr2.indexOf(arr[i]) == -1){
arr2.push(arr[i]);
}
}
return arr2
}
es6新增 new Set()
var arr = [1,2,3,5,4,5,6,2,3,2,1];
console.log(new Set(arr)) //返回一个Set对象: Set(6) {1,2,3,4,5,6}
//使用解构赋值
console.log([...new Set(arr)]) //(6) [1, 2, 3, 5, 4, 6]
end …