중복 값이 포함 된 배열을 갖는 경우가 많으며 고유하게 만들고 싶습니다. 예를 들어이 있고
을 얻고 싶을 수 있습니다.
프로토타입 및 익명 함수와 같은 자바스크립트의 다양한 기능을 활용하면 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
메서드를 사용합니다.
이야기에 대해filter
및indexOf
native 방법,그들이 도입되었 ECMA-262 표준 5th edition,즉 그들은 지원되지 않 오래된 브라우저에서(<IE9). 필터 및 인덱스가 동일한 메서드를 사용할 수 있는 해결 방법이 있지만 더 이상 5 줄 코드가 되지 않습니다.