JavaScript의 Include() 대 indexOf()

ES2016 사양에는 배열 데이터 구조에 대한 includes() 메서드가 포함되었습니다. includes() 메서드는 배열에 특정 요소가 포함되어 있는지 확인하여 적절하게 true 또는 false를 반환합니다.
그러나 ES5에서는 indexOf() 메서드를 사용하여 이와 같은 작업을 수행하는 데 익숙합니다.
includes() 방법을 사용합니다.

const array = [1,2,3,4,5,6];

if(array.includes(4) ){
console.log("true 4 was found in the array")// true 4 was found in the array
} 
indexOf() 메서드로 같은 작업을 해봅시다.

const array = [1,2,3,4,5,6];

if(array.indexOf(4) > -1 ){
console.log("true 4 was found in the array")// true 4 was found in the array
}
includes() 메서드를 사용하여 NaN 확인

 const  array = [NaN];

if (array.includes(NaN)){
console.log("true. NAN was found in the array");// true. NAN was found in the array
}

이것은 indexOf() 방법으로 일이 무너지기 시작하는 곳입니다.

const  array = [NaN];
if (array.indexOf(NaN) == -1){
    console.log("NaN not found in the array");//NaN not found in the array
}

undefined 메서드로 includes()를 확인합니다.

const array = [, , , ,];

if(array.includes(undefined)){
console.log("true array elements are undefined");// true array elements are undefined
} 
indexOf() 메소드가 이 작업을 어떻게 처리하는지 봅시다.

const array = [, , , ,];

if(!array.indexOf(undefined) == -1 ){
console.log("true. array elements are undefined");
}else {
console.log("Sorry can't find undefined");// Sorry can't find undefined
}
includes() 방법은 -0과 +0을 구분하지 않습니다.

const a = [-0].includes(+0);
console.log(a);//true

형식화된 배열에도 메서드가 있습니다includes().

let array = Uint8Array.of(2,6,4);
console.log(array.includes(4));//true

요약


  • 포함 메소드는 NaN 및 정의되지 않음을 찾는 반면 indexOf 메소드는 그렇지 않습니다.
  • included() 메서드는 -0과 +0을 구분하지 않습니다(버그는 아니지만 자바스크립트가 작동하는 방식은 명확합니다. Check javascript Number type )
  • MDN about Array.prototype.includes()에서 더 읽기
  • 좋은 웹페이지 즐겨찾기