>  기사  >  웹 프론트엔드  >  JavaScript를 사용하여 배열에서 중복 코드를 제거하는 방법에 대한 자세한 설명

JavaScript를 사용하여 배열에서 중복 코드를 제거하는 방법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-22 14:46:511093검색

배열에서 중복 제거

중복을 제거하는 간단한 방법: 먼저 빈 배열을 선언하고, for 루프에 반복되는 배열을 삽입하고, 반복되지 않는 반복 삽입을 건너뜁니다.

var arr = [];  
for(var i=0;i<20;i++){  
    arr.push(parseInt(Math.random()*10));  
}  
Array.prototype.indexOf = function(n){  
    for(var i=0;i<this.length;i++){  
        if(this[i] == n){  
            return i;  
        }  
    }  
    return -1;  
}  
function removeDup(arr){  
    var result = [];  
    for(var i=0;i<arr.length;i++){  
        if(result.indexOf(arr[i]) == -1){  
            result.push(arr[i]);  
        }  
    }  
    return result;   
}  
var arr2 = removeDup(arr)  
document.write(arr+&#39;<br/>&#39;+arr2)

배열에서 중복을 제거하는 알고리즘

var arr = [];  
for(var i=0;i<20;i++){  
    arr.push(parseInt(Math.random()*10));  
}  
Array.prototype.indexOf = function(n){  
    for(var i=0;i<this.length;i++){  
        if(this[i] == n){  
            return i;  
        }  
    }  
    return -1;  
}  
function removeDup(arr,s,e){  
    if(s==e){  
        //分割就剩下一个  
        return [arr[s]]  
    }else if(s==e-1){  
        //为了优化 剩下两个就不用分割啦  
        if(arr[s]==arr[e]){  
            return [arr[s]]  
        }else{  
            return [arr[s],arr[e]];  
        }  
    }  
    //数组平分成两段,  
    var l = Math.floor((s+e)/2);  
    //左边  
    var arrL = removeDup(arr,s,l);  
    //右边  
    var arrR = removeDup(arr,l+1,e);  
    //结果 先把左边的复制进去  
    var result = arrL;  
    //循环 将不重复的数据插入到结果里面  
    for(var i=0;i<arrR.length;i++){  
        if(result.indexOf(arrR[i])== -1 ) result.push(arrR[i])  
    }  
    return result; //返回结果  
}  
var arrDup = removeDup(arr, 0, arr.length-1);  
document.write(arr+&#39;<br/>&#39;+arrDup);

설명: 결국 하나의 데이터 또는 두 개의 배열만 남을 때까지 반복 배열을 잘라내고 왼쪽의 데이터를 결과에 넣고 루프가 완료될 때까지 오른쪽의 반복 삽입을 건너뛰고 결과를 반환합니다

위 내용은 JavaScript를 사용하여 배열에서 중복 코드를 제거하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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