단순 및 순수 자바 스크립트 배열이있는 고유 한 방법.5 줄의 코드가있는 고유 한 방법

중복 값이 포함 된 배열을 갖는 경우가 많으며 고유하게 만들고 싶습니다. 예를 들어이 있고을 얻고 싶을 수 있습니다.

프로토타입 및 익명 함수와 같은 자바스크립트의 다양한 기능을 활용하면 5 줄의 코드로 결과를 얻을 수 있습니다:

Array.prototype.unique = function() { return this.filter(function (value, index, self) { return self.indexOf(value) === index; }); }

사용 방법:

var arr = arr.unique(); // => 

이 솔루션은 다음과 같은 종속성을 필요로하지 않습니다.그리고 혼합 된 유형의 배열을 위해 작동합니다!

어떻게 작동합니까?

  • 네이티브 메소드filter는 배열을 반복하고 주어진 콜백 익명 함수를 전달하는 항목 만 남겨 둡니다(예:true반환 값 가져 오기).

  • 콜백 익명 함수는 항목이 처음 발생한 경우true을 반환하고 다른 곳에서는false을 반환합니다. 배열에서 항목의 첫 번째 항목의 인덱스를 찾는 네이티브indexOf메서드를 사용합니다.

이야기에 대해filterindexOfnative 방법,그들이 도입되었 ECMA-262 표준 5th edition,즉 그들은 지원되지 않 오래된 브라우저에서(<IE9). 필터 및 인덱스가 동일한 메서드를 사용할 수 있는 해결 방법이 있지만 더 이상 5 줄 코드가 되지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.