1.利用双重for循环实现数组去重
let arr = [1,2,3,'hello',4,7,8,1,3,3,4]
let unique = (arr) =>{
//第一层for循环 数组的前一项
for(i=0;i<arr.length;i++){
//第二层for循环 数组最后一项
for(j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){
// 将索引值为j的数组元素删除掉,1表示删除一位元素
arr.splice(j,1)
j--;
}
}
}
return arr
}
console.log(unique(arr))//[ 1, 2, 3, 'hello', 4, 7, 8 ]
2.利用indexOf实现数组去重
let arr = [1,2,3,'hello',4,7,8,1,3,3,4]
let unique = (arr) =>{
let newarr =[];
for(i=0;i<arr.length;i++){
// 检查新数组newarr数组是否存在相应元素,不存在返回-1,就将其添加到newarr[]中
if(newarr.indexOf(arr[i])===-1){
newarr.push(arr[i])
}
}
return newarr
}
console.log(unique(arr))//[ 1, 2, 3, 'hello', 4, 7, 8 ]
3.利用includes()方法实现数组去重
判断当前数组中是否包含某个元素,参数为元素,返回true/false
let arr = [1,2,3,'hello',4,7,8,1,3,3,4]
let unique = (arr) =>{
let newarr =[];
for(i=0;i<arr.length;i++){
//当新数组newarr不包含循环遍历的arr数组的元素arr[i]时,
// 将其添加到新数组newarr[]中
if(!newarr.includes(arr[i])){
newarr.push(arr[i])
}
}
return newarr
}
console.log(unique(arr))//[ 1, 2, 3, 'hello', 4, 7, 8 ]
4.利用Set(arr)实现数组去重(不允许重复值出现)
let arr = [1,2,3,'hello',4,7,8,1,3,3,4]
var set=new Set(arr);
// console.log(set);
let [...a]=set;
console.log(a)//[ 1, 2, 3, 'hello', 4, 7, 8 ]