JS数组去重的几种方法
1、indexOf()
var arr = [1,2,3,1,2,3,4,4,5,6,5]
var arr1 = [ ]
for(var i = 0,len = arr.length; i< len; i++){
if(arr1.indexOf(arr[i]) == -1){
arr1.push(arr[i])
}
}
*** 利用一个空数组arr1,当arr1中不存在该元素时push()
2、include()
var arr = [1,2,3,1,2,3,4,4,5,6,5]
var arr1 = []
for(var i = 0,len = arr.length; i< len; i++){
if(arr1.includes(arr[i])!=0){
arr1.push(arr[i])
}
}
*** 同样利用一个空数组arr1,判断arr1中不存在该元素时push()
3、排序后去重 splice()
var arr = [1,2,3,1,2,3,4,4,5,6,5]
var count = 0;
arr.sort(function(a,b){return a-b})
for(var i = 0; i<arr.length-1; i++){
if(arr[i]==arr[i+1]){
count++
}
arr.splice(i-count+1,count)
i=i-count+1
count=0;
}
*** 在元素组上去重,先sort()方法排序,count记录相同元素个数,再利用splice()在元素组上删除相同的元素
3.1、排序后去重 push()
var arr = [1,2,3,1,2,3,4,4,5,6,5]
arr.sort(function(a,b){return a-b})
var arr1=[arr[0]]
for(var i = 1; i<arr.length; i++){
if(arr[i]!=arr[i-1]){
arr1.push(arr[i])
}
}
*** 利用新数组,为防止不能比较到最后一个元素就结束程序,所以这里采用push后一个元素的方法
4.双重循环去重
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < i; j++) {
if (arr[j] == arr[i]) {
arr.splice(i,1);
i--;
break;
}
}
}
5. 原生js去重
var arr = [1,1,2,2,3,4,4]
var newArr = [1]
for(var i = 0; i< arr.length;i++){
for(var j = 0; j< newArr.length; j++){
if(arr[i]==newArr[j]) break;
if(j == newArr.length-1) newArr.push(arr[i]);
}

浙公网安备 33010602011771号