javascript 배열 재 활용 방법 인 스 턴 스 분석

이 글 의 사례 는 자바 script 배열 이 자주 사용 하 는 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
배열 에서 중복 치 를 제거 하 는 것 은 면접 에서 자주 보 는 내용 이자 쉽게 사용 할 수 있 는 기교 입 니 다.다음은 몇 가지 무 거 운 방법 에 대해 소개 하 겠 습 니 다.
먼저 가장 흔히 볼 수 있 는 방법 이다.즉,임시 배열 을 추가 하고 원래 의 배열 을 옮 겨 다 니 며 임시 배열 에 가입 하 는 것 이다.가입 할 때마다 가입 해 야 할 요소 가 임시 배열 에 존재 하 는 지 여 부 를 판단 하 는 것 이다.코드 는 다음 과 같다.

//          ,               ,          
//     ,  ,          
function uniqArray1(arr) {
  var n=[];
  for(var i=0;i<arr.length;i++){
    //               ,   ,    
    if(n.indexOf(arr[i])==-1){
      n.push(arr[i]);
    }
  }
  return n;
}

그렇다면 더 좋 은 방법 은 없 을 까?해시 표 의 사상 을 사용 할 수 있 습 니 다.자바 스 크 립 트 에서 대상 의 검색 은 배열 아래 표 시 된 검색 보다 훨씬 빠 릅 니 다.그래서 우 리 는 임시 배열 에 추 가 된 요 소 를 저장 하 는 대상 을 만 들 수 있 습 니 다.그러면 새로운 요 소 를 추가 할 때마다 대상 을 찾 아 중복 여 부 를 판단 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.

//     ,     
function uniqArray2(arr){
  var n={},//   
    r=[];//    
  for(var i=0;i<arr.length;i++){
    if(n[arr[i]]==null){//        ,       ,       
      n[arr[i]]=true;
      r.push(arr[i]);
    }
  }
  return r;
}

또 하나의 방법 은 속도 가 해시 표 보다 빠 르 지 는 않 지만 가장 기본 적 인 index Of 보다 빠르다.사상 은 먼저 정렬 함수 sort 를 거 친 다음 에 인접 한 요 소 를 비교 하고 다른 것 은 임시 배열 에 추가 하 는 것 이다.코드 는 다음 과 같 습 니 다:

//     ,   ,       
function uniqArray3(arr){
  arr.sort();
  var r=[arr[0]];
  for(var i=1;i<arr.length;i++){
    if(arr[i]!=r[r.length-1]){//         ,         
      r.push(arr[i]);
    }
  }
  return r;
}

마지막 실험 코드 는 다음 과 같다.

//           
var arr=[2,3,4,2,4,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3];
for(var i=0;i<10000000;i++){//            ,         
  arr.push(3);
}
var time1=Date.now();
var n1=uniqArray1(arr);
var time2=Date.now();
console.log(n1);//2,3,4,5         
console.log(time2-time1);//218
time1=Date.now();
var n2=uniqArray2(arr);
time2=Date.now();
console.log(n2);//2,3,4,5         
console.log(time2-time1);//63,           indexOf     
time1=Date.now();
var n3=uniqArray3(arr);
time2=Date.now();
console.log(n3);//2,3,4,5         
console.log(time2-time1);//203,  sort      , indexOf ,       

해시 알고리즘 의 속도 가 가장 빠 른 것 을 볼 수 있다.
PS:여기 서 몇 가지 중복 도 구 를 제공 하여 참고 하여 사용 할 수 있 습 니 다.
온라인 중복 제거 도구:
http://tools.jb51.net/code/quchong
온라인 텍스트 중복 도구:
http://tools.jb51.net/aideddesign/txt_quchong
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기