方法 1
// 方法 1 适合 一维数组 多维数组 去重 降维后 去重
var arr = [1,2,3,4,5,6,6,7];
for(var i = 0 ,newArr=[];i<arr.length;i++){
// 利用indexOf() 查找第一次出现指定字符的下标 如果没有找到 返回 -1
if(newArr.indexOf(arr[i]) === -1 ){
//数组的API push 方法 会往数组结尾添加 元素 并返回数组的长度
newArr.push(arr[i])
}
}
console.log(newArr) // [1,2,3,4,5,6,7];-->返回新数组 不改变原数组
方法 2
var arr = [1,2,3,4,5,6,6,7];
for(var i = 0 ;i<arr.length;i++){
for(var j = i+1; j<arr.length;j++){
if(arr[i]=== arr[j]){
arr.splice(arr[i],1)
j--;
}
}
}
console.log(arr)//[1,2,3,4,5,6,7];
/*代码 优化
// 【前一个 值 和 后一个 作比较 如果相等 删除 其中一个】
for(var i = 0 ,j = i+1; j < arr.length && i<arr.length;j++,i++){
if(arr[i]===arr[j]){
arr.splice(arr[i],1)
}
}
*/
方法 三
//ES6 Set 对象
//new Set([iterable]);
// 如果传递的参数是 一个可迭代的对象 它的所有元素将不重复的被添加到Set对象中 ,
//如果不指定此参数 或者 传入的值为 null ,则新Set为空 size为0 即 【**Set集合中的值是唯一的**】
var arr = [1,2,3,4,5,6,6,7];
//利用数组的解构
//1.将 new Set() 返回的 集合 ---> 对象
//2.将对象打散 放进数组中
/*
new Set(arr) ---> 返回的 集合为 :{1, 2, 3, 4, 5, 6,7}
*/
console.log([...new Set(arr)])//[1, 2, 3, 4, 5, 6, 7]