es6 배열 includes()용법 사례 분석
2157 단어 es6배열includes()
Array.prototype.includes 방법 은 불 값 을 되 돌려 줍 니 다.특정한 배열 에 주어진 값 이 포함 되 어 있 는 지 여 부 를 표시 합 니 다.문자열 의 includes 방법 과 유사 합 니 다.ES 2016 은 이 방법 을 도입 했다.
[1, 2, 3].includes(2) // true
[1, 2, 3].includes(4) // true
[1, 2, NaN].includes(NaN) // true
이 방법의 두 번 째 매개 변 수 는 검색 의 시작 위 치 를 표시 하고 기본 값 은 0 입 니 다.두 번 째 매개 변수 가 마이너스 라면 역수 의 위 치 를 나타 낸다.이때 배열 의 길이(예 를 들 어 두 번 째 매개 변 수 는-4 이지 만 배열 의 길 이 는 3)보다 크 면 0 으로 초기 화 된다.
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
이 방법 이 없 기 전에 저 희 는 보통 배열 의 index Of 방법 을 사용 하여 특정한 값 이 포함 되 어 있 는 지 확인 합 니 다.
if (arr.indexOf(el) !== -1) {
// ...
}
index of 방법 은 두 가지 단점 이 있 습 니 다.하 나 는 의미 화 되 지 않 고 그 의 미 는 매개 변수 값 의 첫 번 째 출현 위 치 를 찾 는 것 입 니 다.그래서-1 과 같 지 않 고 표현 하기에 직관 적 이지 않 습 니 다.둘째,내부 적 으로 엄격 한 연산 자 를 사용 해 판단 하면 NaN 에 대한 오심 을 초래 할 수 있다.
[NaN].indexOf(NaN) // -1
includes 는 서로 다른 판단 알고리즘 을 사용 하 는데 이 문제 가 없습니다.
[NaN].includes(NaN) // true
다음 코드 는 현재 환경 이 이 방법 을 지원 하 는 지 확인 하 는 데 사 용 됩 니 다.지원 하지 않 으 면 간단 한 대체 버 전 을 배치 합 니 다.
const contains = (() => Array.prototype.includes
? (arr, value) => arr.includes(value)
:(arr, value) => arr.some(el => el === value)
)()
또한 맵 과 set 데이터 구 조 는 has 방법 으로 includes 와 구분 해 야 합 니 다.-map 구조의 has 방법 은 키 이름 을 찾 는 데 사 용 됩 니 다.예 를 들 어 Map.prototype.has(key).
WeakMap.prototype.has(key), Reflect.has(target, propertyKey)
-set 구조의 has 방법 은 값 을 찾 는 데 사 용 됩 니 다.예 를 들 어 Set.prototype.has(value),
WeakSet.prototype.has(value)
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript로 카드 놀이를 넘기는 애니메이션을 만들려고했습니다.카드를 넘기는 애니메이션을 만들어 보았습니다. 폴더 구성은 다음과 같습니다. 코드는 다음과 같습니다. card_turning.html 다음은 JavaScript 코드입니다. cardTurning.js 결과는, 이런 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.