>  기사  >  웹 프론트엔드  >  JavaScript에서 배열 중복 제거를 구현하는 방법은 무엇입니까? js의 배열에서 중복을 제거하는 세 가지 방법(코드 예제)

JavaScript에서 배열 중복 제거를 구현하는 방법은 무엇입니까? js의 배열에서 중복을 제거하는 세 가지 방법(코드 예제)

青灯夜游
青灯夜游원래의
2018-10-15 13:37:303881검색

JavaScript에서 배열 중복 제거를 구현하는 방법은 무엇입니까? 이 기사에서는 js에서 배열 중복을 제거하는 세 가지 일반적인 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

아래에서는 간단한 코드 예제를 통해 js의 세 가지 일반적인 배열 중복 제거 방법을 소개합니다.

첫 번째 방법: for 루프(2회) + 새 배열

아이디어:

1. 결과를 저장할 새 배열을 구성합니다

2. for 루프에서 매번 원래 배열을 꺼냅니다. 요소, 이 요소를 사용하여 결과 배열과 반복하고 비교하세요

3. 결과 배열에 해당 요소가 없으면 결과 배열에 저장하세요

//方法一
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeDuplicatedItem(arr) {
   for(var i = 0; i < arr.length-1; i++){
       for(var j = i+1; j < arr.length; j++){
           if(arr[i]==arr[j]){
              arr.splice(j,1);//console.log(arr[j]);
              j--;
           }
       }
   }
   return arr;
}

arr2 = removeDuplicatedItem(arr);
console.log(arr);
console.log(arr2);

첫 번째 방법은 기본적으로 arr =에 대해 우리의 요구를 충족할 수 있습니다. [1 ,23,1,1,1,3,23,5,6,7,9,9,8,5] 이렇게 간단한 배열은 유형 비교만 사용하면 되지만 배열이 너무 길면 어떻게 될까요? 이러한 방식으로 배열을 순회하면 배열의 길이는 n이 되고 시간 복잡도는 n*n이 됩니다. 분명히 첫 번째 방법의 성능이 향상되어야 합니다. 다음은 두 번째 방법으로, 배열 정렬을 사용하여 정렬 과정에서 중복된 값을 제거하는 방법입니다.

두 번째 방법: for 루프(한 번) + sort() 정렬 + 새 배열

원래 배열 길이는 그대로 유지되지만 새 배열의 도움으로 새 배열인지 확인합니다. 배열이 존재합니다 요소가 존재하지 않으면 새 배열에 요소를 추가하세요

//方法二
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeRepEle(ar) {
    var ret = [],
        end;//临时变量用于对比重复元素
    ar.sort();//将数重新组排序
    end = ar[0];
    ret.push(ar[0]);
    for (var i = 1; i < ar.length; i++) {
        if (ar[i] != end) {//当前元素如果和临时元素不等则将此元素添加到新数组中
            ret.push(ar[i]);
            end = ar[i];
        }
    }
    return ret;
}

arr2 = removeRepEle(arr);
console.log(arr);//[ 1, 1, 1, 1, 23, 23, 3, 5, 5, 6, 7, 8, 9, 9 ]
console.log(arr2);//[ 1, 23, 3, 5, 6, 7, 8, 9 ]

두 번째 방법에는 특정 제한이 있습니다. 배열이 먼저 정렬된 다음 중복 제거되므로 반환되는 최종 결과는 js 배열 중복 제거 및 병합 정렬된 결과입니다. . 배열 순서를 변경하지 않고 중복 항목을 제거해야 하는 경우 이 방법은 권장되지 않습니다.

세 번째 방법(권장): for 루프(1회) + 새 배열 + 새 개체

빈 개체를 사용하여 새 배열에 저장된 요소를 기록합니다.

//方法三 
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
var o={};
var new_arr=[];
for(var i=0;i<arr.length;i++){
    var k=arr[i];
    if(!o[k]){
        o[k]=true;
        new_arr.push(k);
    }
}
console.log(new_arr);

요약: 여기까지입니다. 기사 전체 내용이 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 많은 관련 튜토리얼을 보려면 JavaScript 비디오 튜토리얼, jQuery 비디오 튜토리얼, bootstrap 튜토리얼을 방문하세요!

위 내용은 JavaScript에서 배열 중복 제거를 구현하는 방법은 무엇입니까? js의 배열에서 중복을 제거하는 세 가지 방법(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.