> 웹 프론트엔드 > JS 튜토리얼 > js arrays_javascript 기술에서 중복을 제거하는 세 가지 일반적인 방법 요약

js arrays_javascript 기술에서 중복을 제거하는 세 가지 일반적인 방법 요약

WBOY
풀어 주다: 2016-05-16 17:02:58
원래의
997명이 탐색했습니다.

첫 번째는 좀 더 전통적인 방법입니다

사물:

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

2. for 루프가 실행될 때마다 원래 배열에서 하나의 요소를 꺼내고 이 요소는 루프와 결과 배열을 비교하는 데 사용됩니다

3. 요소가 결과 배열에 없으면 결과 배열에 저장합니다.

코드 복사 코드는 다음과 같습니다:

Array.prototype.unique1 = function(){
var res = [this[0]];
for(var i = 1; i < this.length; i ){
varpeat = false;
for(var j = 0; j < res.length; j ){
if(this[i] == res[j] ){
반복 = true;
중단;
}
}
if(!repeat){
res.push(this[i]);
}
}
res 반환 ;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', ​​​​'e', ​​1 , 0]
alert(arr.unique1 ());

위의 방법보다 두 번째 방법이 더 효율적입니다

사물:

1. 원본 배열을 먼저 정렬하세요

2. 원본 배열의 i번째 요소가 결과 배열의 마지막 요소와 동일한지 확인하세요. 정렬되었으므로 중복된 요소가 인접한 위치에 있게 됩니다.

3. 동일하지 않으면 결과 배열에 요소를 저장합니다.

코드를 복사합니다. 코드는 다음과 같습니다. 다음:

Array.prototype.unique2 = function(){
this.sort(); //먼저 정렬
var res = [this[0]];
for(var i = 1; i < this.length; i ){
if(this[i] !== res[res.length - 1]){
res.push(this[i] );
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', ​​​​'e', ​​1, 0]
alert(arr.unique2());

두 번째 방법도 중복 제거 전에 정렬되기 때문에 특정 제한이 있으므로 최종 반환된 중복 제거 결과도 정렬됩니다. 배열 순서를 변경하지 않고 중복 항목을 제거해야 하는 경우 이 방법은 권장되지 않습니다.

세 번째 방법(권장)

사물:

1. 결과를 저장할 새 배열을 만듭니다

2. 빈 개체를 만듭니다

3. for 루프 중에 요소를 꺼내서 개체와 비교할 때마다 요소가 반복되지 않으면 동시에 이 요소의 내용이 사용됩니다. 객체의 속성으로 1. 값이 할당되어 2단계에서 생성된 객체에 저장됩니다.

설명: 비교하는 방법은 매번 원래 배열에서 하나의 요소를 가져온 다음 개체에서 이 속성에 액세스하는 것입니다. 값에 액세스할 수 있으면 반복된다는 의미입니다.

코드 복사 코드는 다음과 같습니다.

Array.prototype.unique3 = function() {
var res = [];
var json = {};
for(var i = 0; i < this.length; i ){
if(!json[this[i ]]) {
res.push(this[i]);
json[this[i]] = 1;
}
}
return res;
}

var arr = [112,112,34,'Hello',112,112,34,'Hello','str','str1'];
alert(arr.unique3());


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿