어레이 중복을 제거하는 네 가지 일반적인 방법

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. 먼저 정렬한 다음 중복 제거

먼저 정렬한 다음 인접한 두 요소를 비교하여 같지 않으면 이전 요소를 새 배열로 푸시합니다.

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. 포함을 사용하여 중복 제거

새 배열을 만들고 새 배열에 중복 제거할 배열 요소가 포함되어 있는지 판단하고, 그렇지 않은 경우 해당 요소를 새 배열에 푸시합니다.

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