数组中如何去重
第一种
var arr = [1, 1, 2, 3, 3, 3, 5, 7, 7, 9]
// 去除数组中重复的数据
for (i = 0; i < arr.length; i++) {
for(j = i + 1;j < arr.length; j++){
// 如何由重复的 删除后面的元素
if(arr[i] === arr[j]){
// 重复
arr.splice(j,1) // 根据索引 删除一个
// 回退到当前的删除元素的位置
j--
}
}
}
console.log(arr);
第二种
var res = [] // 保证数组中元素是不重复的
for(var i = 0;i<arr.length;i++){
if(res.indexOf(arr[i] === -1)){
res.push(arr[i])
}
}
console.log(res);
三 原始的双成for
var res = [] // 不重复的元素数组
var flag = false // 表示res中是否存在arr数组中元素 true存在,false 不存在
for(var i = 0;i < arr.length; i ++){
// 验证res中是否存在arr[i]
for(var j = 0;j< res.length;j++){
if(arr[i] === res[j]){
// 存在
flag = true;
break
}else{
// 不存在
flag = false;
}
}
// 数据处理
// 如果不存在,将arr[i] 添加到res中
if(!flag){
res.push(arr[i])
}
}
console.log(res);
利用过滤
var arr = [1, 1, 2, 3, 3, 3, 5, 7, 7, 9]
var res = arr.filter(function(item,index,array){
// console.log(array.indexOf(item),'item===',item,'index===',index);
return array.indexOf(item) === index
// array,indexOf(item) !== index // 当前的item重复
})
console.log(res);