어레이 중복 제거는 일반적인 요구 사항입니다. 동일한 유형의 어레이 중복 제거를 일시적으로 고려할 것입니다. 가장 중요한 것은 아이디어를 명확하게 하고 성과를 고려하는 것입니다. 다음 방법은 기본적으로 인터넷에서 구할 수 있는 방법인데 여기서는 간단히 요약해 보겠습니다.
사물:
1. 배열을 순회하며 하나씩 비교합니다. 비교가 동일하면 다음을 삭제합니다.
2. 배열을 순회하면서 하나씩 비교하고, 동일하지 않으면 이전 중복 항목을 건너뛰고 새 배열에 넣습니다.
3. 배열 요소를 가져와서 새 배열에 넣고, 나머지 배열 요소를 순회하고, 새 배열의 요소와 하나씩 비교하고, 차이점이 있으면 새 배열에 넣습니다.
4. 배열을 탐색하고 요소를 객체의 속성으로 가져와 해당 속성이 존재하는지 확인합니다.
1. 반복되는 내용 삭제:
function ov1(arr){ //var a1=((new Date).getTime()) for(var i=0;i<arr.length;i++) for(var j=i+1;j<arr.length;j++) if(arr[i]===arr[j]){arr.splice(j,1);j--;} //console.info((new Date).getTime()-a1) return arr.sort(function(a,b){return a-b}); }
2. 이는 이해하기 쉬운 일반적인 방법입니다. 동일하다면 루프에서 벗어나세요.
function ov2(a) { //var a1=((new Date).getTime()) var b = [], n = a.length, i, j; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) if (a[i] === a[j]){j=false;break;} if(j)b.push(a[i]); } //console.info((new Date).getTime()-a1) return b.sort(function(a,b){return a-b}); }
3. 이것을 이해하는 데 오랜 시간이 걸렸습니다. 여기서 j 루프가 계속되지만 i 값이 변경되었습니다. 이는 새로운 i 루프와 동일합니다:
function ov3(a) { //var a1=((new Date).getTime()) var b = [], n = a.length, i, j; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) if (a[i] === a[j])j=++i b.push(a[i]);} //console.info((new Date).getTime()-a1) return b.sort(function(a,b){return a-b}); }
4. 새 어레이의 모든 항목이 고유한지 확인하세요
function ov4(ar){ //var a1=((new Date).getTime()) var m=[],f; for(var i=0;i<ar.length;i++){ f=true; for(var j=0;j<m.length;j++) if(ar[i]===m[j]){f=false;break;}; if(f)m.push(ar[i])} //console.info((new Date).getTime()-a1) return m.sort(function(a,b){return a-b}); }
5. 객체 속성 사용
function ov5(ar){ // var a1=(new Date).getTime() var m,n=[],o= {}; for (var i=0;(m= ar[i])!==undefined;i++) if (!o[m]){n.push(m);o[m]=true;} // console.info((new Date).getTime()-a1) return n.sort(function(a,b){return a-b});; }
자바스크립트 배열에서 중복된 값을 제거하기 위해 위의 권장 방법은 모두 편집자가 공유한 내용이므로 참고가 되기를 바라며, 스크립트 홈을 지원해 주시길 바랍니다.