JavaScript数组去重方法总结
# 方法一:利用 indexOf 以及 forEach
var arr = [1,1,2,3];
var array=[];
for(var i=0;i<arr.length;i++){
if(array.indexOf(arr[i])===-1){
array.push(arr[i]);
}
}
console.log(array) //输出值: [1,2,3]
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 方法二:利用ES6的Set结合Array.from去重
Set数据结构,它类似于数组,其成员的值都是唯一的,利用Array.from将Set结构转换成数组
let arr=[1,1,2,3];
let newArr = Array.from(new Set(arr)); // 或 let newArr = [...new Set(arr)];
console.log(newArr ); //输出值: [1,2,3]
1
2
3
2
3
# 方法三:利用数组中filter方法
按照某个条件过滤,返回满足条件的新数组
var arr = [1,1,2,3];
var newArr = arr.filter((items,index,arry)=>{
return arry.indexOf(items) === index //过滤掉下标相同的值
});
console.log(newArr); //输出值: [1,2,3]
1
2
3
4
5
2
3
4
5
# 方法四:利用 includes 方法
includes检测数组是否有某个值
var arr = [1,1,2,3];
var array=[];
for(var i=0;i<arr.length;i++){
if(!array.includes(arr[i])){
array.push(arr[i]);
}
}
console.log(array); //输出值: [1,2,3]
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 方法五:利用for嵌套,然后splice去重
var arr = [1,1,2,3];
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
j--;
}
}
}
console.log(arr); //输出值: [1,2,3]
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
上次更新: 2024/01/30, 00:35:17
- 02
- Node与GLIBC_2.27不兼容解决方案08-19
- 03
- Git清空本地文件跟踪缓存08-13