>  기사  >  웹 프론트엔드  >  JavaScript 배열에서 중복 요소를 제거하기 위한 아이디어 및 구현 코드에 대한 자세한 설명

JavaScript 배열에서 중복 요소를 제거하기 위한 아이디어 및 구현 코드에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-22 14:11:401058검색

Javascript 배열 중복 제거는 비교적 일반적인 요구 사항이며 다양한 솔루션이 있습니다.

아이디어:

배열을 탐색하고 하나씩 비교하고 동일한 항목을 삭제합니다.

Traverse 배열, 하나씩 비교하고, 동일한 것을 비교하고, 이전에 반복된 것을 건너뛰고, 다른 것을 새 배열에 넣습니다.

아무 배열 요소를 선택하여 새 배열에 넣고, 나머지 배열 요소를 순회하고, 아무거나 선택하세요. 하나씩 비교하여 새 배열의 요소와 결합하고, 차이점이 있으면 새 배열에 넣습니다.

배열을 탐색하고, 요소를 가져와서 객체의 속성으로 사용하고, 속성이 존재하는지 확인합니다.

1. 반복되는 항목을 삭제합니다.


function ov(arr){
 //var a=((new Date).getTime())
 for(var i=;i<arr.length;i++)
 for(var j=i+;j<arr.length;j++)
  if(arr[i]===arr[j]){arr.splice(j,);j--;}  
 //console.info((new Date).getTime()-a)  
 return arr.sort(function(a,b){return a-b});
}

2. 만약 같다면 루프에서 벗어나세요

function ov(a) {
 //var a=((new Date).getTime())
 var b = [], n = a.length, i, j;
 for (i = ; i < n; i++) {
 for (j = i + ; j < n; j++)
  if (a[i] === a[j]){j=false;break;}
 if(j)b.push(a[i]);
 }
 //console.info((new Date).getTime()-a) 
 return b.sort(function(a,b){return a-b});
}


3. 여기서는 j 루프가 계속되지만 i 값이 변경되었습니다. 이는 새로운 i 루프와 같습니다:

function ov(a) {
 //var a=((new Date).getTime())
 var b = [], n = a.length, i, j;
 for (i = ; i < n; i++) {
 for (j = i + ; j < n; j++)
 if (a[i] === a[j])j=++i
 b.push(a[i]);}
 //console.info((new Date).getTime()-a) 
 return b.sort(function(a,b){return a-b});
}
4. 새 배열의 모든 항목이 고유한지 확인하세요


function ov(ar){
//var a=((new Date).getTime())
 var m=[],f;
 for(var i=;i<ar.length;i++){
 f=true;
 for(var j=;j<m.length;j++)
 if(ar[i]===m[j]){f=false;break;};
 if(f)m.push(ar[i])}
//console.info((new Date).getTime()-a) 
 return m.sort(function(a,b){return a-b});
}
5. 객체 속성을 사용하세요


function ov(ar){
// var a=(new Date).getTime()
 var m,n=[],o= {};
 for (var i=;(m= ar[i])!==undefined;i++)
 if (!o[m]){n.push(m);o[m]=true;}
// console.info((new Date).getTime()-a) 
 return n.sort(function(a,b){return a-b});;
 }
.

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

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