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]