アレイを重複排除する 4 つの一般的な方法

1. 二重層のループ重複排除

前の要素と次の要素が等しいかどうかを判断し、等しい場合は次の要素を削除します

function func(tempArr){
	for(var i=0;i<tempArr.length;i++){
		for(var j=i+1;j<tempArr.length;j++){
			if(tempArr[i]==tempArr[j]){
				tempArr.splice(j,1);
                j--;
			};
		};
	};
	return tempArr;
};
var arr = [20,3,4,45,34,43,20,45,60];
console.log(func(arr)); //(7) [20, 3, 4, 45, 34, 43, 60]

2. 最初に並べ替えてから重複を排除する

最初にソートし、次に隣接する 2 つの要素を比較し、等しくない場合は、前の要素を新しい配列にプッシュします。

function func(tempArr){
    tempArr.sort(function(a,b){//sort()方法会影响原数组的顺序
        return a-b;
    });		
    var newArr = [];
	for(var i=0;i<tempArr.length;i++){
		if(tempArr[i]!=tempArr[i+1]){
			newArr.push(arr[i]);
		};
	};
	return newArr;
};
var arr = [20,3,4,45,34,43,20,45,60];
console.log(func(arr)); //(7) [20, 3, 4, 45, 34, 43, 60]

3. 添え字を使用して重複を削除します

新しい空の配列を作成し、元の配列の数値が初めてであると判断し、その数値を新しい配列に代入します

function func(tempArr){
	var newArr = [];
	for(var i=0;i<tempArr.length;i++){
		if(newArr.indexOf(tempArr[i])==-1){//需注意:IE8以下不支持indexOf()方法
			newArr.push(arr[i]);
			//等价于下面两种写法
			//newArr.splice(i,0,arr[i]);
			//newArr.splice(newArr.length,0,arr[i]);
		};
	};
	return tempArr;
};
var arr = [20,3,4,45,34,43,20,45,60];
console.log(func(arr)); //(7) [20, 3, 4, 45, 34, 43, 60]

4. include を使用して重複を排除する

新しい配列を作成し、新しい配列に重複排除する配列の要素が含まれているかどうかを確認し、含まれていない場合はその要素を新しい配列にプッシュします。

function func(tempArr){
	var newArr = [];
	for(var i=0;i<tempArr.length;i++){
		if(!newArr.includes(tempArr[i])){
			newArr.push(tempArr[i]);
		};
	};
	return newArr;
};
var arr = [20,3,4,45,34,43,20,45,60];
console.log(func(arr)); //(7) [20, 3, 4, 45, 34, 43, 60]

おすすめ

転載: blog.csdn.net/weixin_55992854/article/details/117371667