Array.prototype.indexOf()
사용법
자바스크립트 배열 indexOf()
함수는
배열에서 인수로 전달된 요소를 찾아 첫 번째로 검색된(등장한) 요소의 인덱스를 반환하는 함수입니다.
인수로 전달된 요소를 찾을 수 없다면 -1
을 반환합니다.
이 함수는 배열에서 요소의 위치를 찾거나, 존재하는지 확인할 때 유용합니다.
문자열에서는 Srting.prototype.indexOf()
가 같은 역할을 합니다.
indexOf()
함수의 형식은 다음과 같습니다.
구문
arr
은 indexOf()
함수를 적용할 배열입니다.
매개변수
searchElement |
필수. 배열에서 찾을 요소입니다.
대소문자를 구분합니다. |
---|---|
fromIndex |
옵션. 검색을 시작할 0 기반의 인덱스입니다.
|
반환 값
배열에서 인수로 전달된 요소를 찾아 첫 번째로 검색된(등장한) 요소의 인덱스를 반환합니다.
인수로 전달된 요소를 찾을 수 없다면 -1
을 반환합니다.
매개변수와 반환 값 예시
주의할 점
indexOf()
함수로 NaN
를 검색할 수 없습니다.
indexOf()
함수로 문자열을 검색할 때에는 대소문자를 구분합니다.
다양한 활용 사례
indexOf()
함수에 관련된 다양한 활용 사례입니다.
배열에서 요소의 존재 여부 확인
배열에서 특정 요소가 포함하는지 확인할 때에는 주로 includes()
함수를 사용하지만,
indexOf()
함수도 배열에서 요소의 존재 여부를 확인하는데 유용하게 사용됩니다. 인수로 전달된 요소를 찾을 수 없다면 -1
을 반환하기 때문입니다.
배열의 중복 요소 제거하기
아래 예제는 indexOf()
함수와 forEach()
반복문을 사용하여 배열에서 중복된 요소를 제거하는 방법을 보여줍니다. 이 예제는 배열 arr
에서 중복 요소를 제거하여 새로운 배열 uniqueArr
를 생성합니다.
코드 부연설명
forEach()
함수는 배열을 순회해서 각 요소를 콜백 함수로 처리하기 위한 함수입니다.
이 코드는 forEach()
반복문을 사용하여 배열을 반복하면서 중복 요소를 uniqueArr
에 추가하기 전에 indexOf()
함수를 사용하여 중복을 확인하고, 중복이 아닌 경우에만 요소를 추가합니다. 이 코드는 배열의 중복을 제거하는 데 잘 작동할 것입니다.
만약 배열의 크기가 크지 않고 코드가 간단한 경우, 위의 코드로 충분하겠지만, 배열이 큰 경우에는 indexOf()
함수가 각 요소를 검색하기 때문에 성능상의 문제가 발생할 수 있습니다. 그런 경우에는 Set()
객체를 사용한 방법을 고려하는 것이 좋습니다. Set()
객체는 중복된 값을 허용하지 않고 중복이 자동으로 제거되므로 성능상 이점이 있습니다.
이 방법은 Set()
객체를 사용하여 중복 요소를 자동으로 제거하고, 다시 배열로 변환하여 중복이 제거된 새로운 배열을 반환합니다.
특정 범위에서 요소의 존재 여부 확인
코드 부연설명
배열의 slice()
함수는 배열의 특정 범위의 요소를 잘라내어(slice) 추출한 결과를 새로운 배열로 반환합니다.
위의 코드에서 slice()
함수를 사용하여 주어진 startIndex
와 endIndex
를 기반으로 배열의 부분을 추출하고, 추출한 부분 배열에서 indexOf()
함수를 사용하여 요소의 존재 여부를 확인합니다.
브라우저 호환성
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
indexOf()
|
1 | 12 | 1.5 | 3 |
명세서
명세서 사양 | |
---|---|
Array.prototype.indexOf()
|
ECMAScript Language Specification #sec-array.prototype.indexof |