이 글에서는 주로 JavaScript 배열 중복 제거 알고리즘을 소개하고, JavaScript 배열 중복 제거와 관련된 읽기, 쓰기, 순회, 비교, 정렬 및 기타 작업과 알고리즘 개선과 관련된 구현 기술을 예제 형식으로 요약하고 분석합니다. 참고하시면 됩니다
이 글은 자바스크립트 배열 중복 제거 알고리즘을 예시로 요약한 것입니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
테스트 사례: arr = ["1",3,"1",1,4,5,1,"2",5,1,{" name":" li","age":20},2,4,3,{"name":"li","age":20},""];
방법 1: 다음의 도움으로 임시 배열 및 indexOf, 알고리즘 복잡도는 다음과 같습니다.O(n^2)
function unique1(arr){ var temp = []; for(var i=0; i<arr.length; i++){ if(temp.indexOf(arr[i]) == -1){ temp.push(arr[i]); } } return temp; }
테스트 결과: Unique1(arr): ["1", 3, 1, 4, 5, "2", Object { name ="li", age =20}, 2, Object { name="li", age=20}, ""]
bug 개체를 구별할 수 없습니다
방법 2: JavaScript의 개체 개체를 해시로 사용 table
function unique2(arr){ var temp=[]; var hash={}; for(var i=0; i<arr.length;i++){ if(!hash[arr[i]]){ hash[arr[i]]=true; temp.push(arr[i]); } } return temp; }
테스트 결과: Unique2(arr): ["1", 3, 4, 5, "2", Object { name="li", age=20}, ""]
bug: 불가능 구별: 1과 "1"
Modify
function unique2(arr){ var temp=[]; var hash={}; for(var i=0; i<arr.length;i++){ var item = arr[i]; var key = typeof(item)+item; if(!hash[key]){ hash[key]=true; temp.push(arr[i]); } } return temp; }
테스트 결과: Unique2(arr): ["1", 3, 1, 4, 5, "2", Object { name="li", age=20} , 2, ""]
방법 3: 먼저 sort를 사용하여 배열을 정렬한 다음 임시 배열을 사용하여 동일한 요소의 마지막 요소를 저장합니다. 이 방법은 순수 숫자 유형 배열에만 사용할 수 있습니다.
function unique3(arr){ arr.sort(function(a,b){ return a-b; }); var temp = []; for(var i=0;i<arr.length;i++){ if(arr[i] !== arr[i+1]){ temp.push(arr[i]); } } return temp; }
위 내용은 모두를 위해 정리한 내용입니다. 앞으로도 잘 활용되길 바랍니다. 모두에게 도움이 됩니다.
관련 기사:
ajax는 json을 사용하여 데이터 전송을 구현합니다.
위 내용은 JavaScript 배열 중복 제거 알고리즘 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!