2023년 3월 11일
KSY
includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별한다.
arr.includes(valueToFind[, fromIndex])
이 함수를 사용하면 반환값은 boolean(true/false)이다.
let array = [1,2,3];
array.includes(2); //true
array.includes(4); //false
array.includes(3, 3); //false
array.includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
여기에서 array.includes(3, 3); 를 살펴보면 결과값으로 false가 반환이 된다.
false가 반환되는 이유는 간단하다. 3인 요소를 3번째 인덱스에서 찾겠다라는 의미인데 array 변수의 요소값을 보면 3번째 인덱스가 있지 않지 않고 3이란 요소도 없으니 false가 반환이 된다.
⇒ fromIndex가 배열의 길이보다 같거나 크다면 false를 반환
array.includes(3, -1); 를 살펴보면 3인 요소값을 array에서 찾겠다라는 의미인데 -1은 배열 끝에서부터 검색을 시작한다는 의미이다. 그러므로 마지막 인덱스인 array[2]에서 찾겠다는건데 이 이전 요소인 3를 찾았기에 true를 반환한다.
하지만 검색 대상이 문자열인 경우, -1을 전달하면 검색을 끝에서부터 시작할지 또는 전체 문자열에서 검색을 시작할지에 따라 결과가 달라질 수 있습니다. 따라서 -1을 사용하기 전에 검색 대상의 종류에 따라 예상되는 결과를 확인해야 합니다.