>웹 프론트엔드 >JS 튜토리얼 >JavaScript arrays_javascript 기술 중복 제거를 위해 권장되는 두 가지 방법

JavaScript arrays_javascript 기술 중복 제거를 위해 권장되는 두 가지 방법

WBOY
WBOY원래의
2016-05-16 15:06:361468검색

1. 어레이 중복 제거

배열 유형은 중복 요소를 제거하는 방법을 제공하지 않습니다. 배열에서 중복 요소를 제거하려면 직접 방법을 찾아야 합니다.

방법 1: indexOf 메소드를 사용하세요.

var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
  var result=[]
  for(var i=0; i<arr.length; i++){
    if(result.indexOf(arr[i])==-1){
      result.push(arr[i])
    }
  }
  console.log(result)
}      
arr(aa)

방법 2:

function unique(arr) {
  var result = [], isRepeated;
  for (var i = 0, len = arr.length; i < len; i++) {
    isRepeated = false;
    for (var j = 0, len = result.length; j < len; j++) {
      if (arr[i] == result[j]) {  
        isRepeated = true;
        break;
      }
    }
    if (!isRepeated) {
      result.push(arr[i]);
    }
  }
  return result;
}

방법 2, 일반적인 아이디어는 배열 요소를 다른 배열로 하나씩 전송하는 것입니다. 전송 과정에서 요소가 중복되는지 확인하고, 그렇다면 직접 폐기하세요. 중첩 루프에서 볼 수 있듯이 이 방법은 매우 비효율적입니다. 해시테이블 구조를 사용하여 기존 요소를 기록하면 내부 루프를 피할 수 있습니다. Javascript에서 해시테이블을 구현하는 것은 매우 간단합니다. 개선 사항은 다음과 같습니다.

function unique(arr) {
  var result = [], hash = {};
  for (var i = 0, elem; (elem = arr[i]) != null; i++) {
    if (!hash[elem]) {
      result.push(elem);
      hash[elem] = true;
    }
  }
  return result;
}

JavaScript 배열 중복 제거를 위한 위 두 가지 권장 방법은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. Script Home을 지원해 주시길 바랍니다.

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