indexOf 메서드
메서드 indexOf는 배열에서 요소를 검색합니다.
첫 번째 매개변수로
검색할 요소를 지정합니다.
메서드는 첫 번째로 찾은 요소의 인덱스를 반환하거나,
해당 요소가 없으면 -1을 반환합니다.
메서드의 두 번째 선택적 매개변수는
검색을 시작할 위치를
지정합니다.
구문
배열.indexOf(요소, [검색 시작 위치]);
예제
배열에서 첫 번째 숫자 3의 위치를 찾아봅시다:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
코드 실행 결과:
2
예제
이제 검색할 요소가 배열에 없는 경우를 살펴봅시다:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
코드 실행 결과:
-1
예제
지정된 위치부터 검색을 시작해봅시다:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
코드 실행 결과:
5
자주 발생하는 오류
때로는 메서드를 배열에 요소가 있는지 확인하는 데 사용합니다. 이 경우 다음과 같이 확인하면 쉽게 실수할 수 있습니다:
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
이러한 확인은 0번 인덱스를 제외한
모든 위치에서 작동합니다 - 왜냐하면
0은 false로 해석되기 때문입니다.
요소의 존재를 올바르게 확인하는 방법은 다음과 같습니다:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
참고 항목
-
메서드
includes,
배열에 요소가 있는지 확인합니다 -
메서드
lastIndexOf,
끝에서부터 요소를 검색합니다 -
메서드
at,
인덱스로 배열 요소를 반환합니다 -
메서드
match,
문자열에서 일치 항목을 검색합니다 -
메서드
search,
검색을 수행합니다