JavaScript/배열(Array)

[JavaScript] 배열 특정 값 인덱스(index) 찾기(1) - indexOf()

효니님 2023. 9. 13. 12:22
728x90

 

 

indexOf(), lastIndexOf(), findIndex() 메서드를 이용하여

특정 값 index를 찾을 수 있습니다.

 

 

배열 특정 값 인덱스(index) 찾기 - indexOf()

이 포스팅에서는 indexOf() 메서드를 이용하여

배열에서 특정 값의 index를 찾는 방법을 알아보겠습니다.

 

 

1. indexOf()

arr.indexOf(searchElement[, fromIndex])

indexOf() 메서드는 배열 내에서 찾고자 하는 값 정확하게 일치하는 첫 번째 요소의 index를 반환합니다.

찾으려는 값이 배열에 존재하지 않으면 -1을 반환합니다.

indexOf() 메서드는 ===연산자를 사용하여 비교하며,

타입과 값이 모두 동일한 값이어야 같은 값으로 처리합니다.

 

 

searchElement

배열에서 찾고자 하는 값

 

 

fromIndex

검색을 시작할 index

입력하지 않으면 0부터 검색을 시작합니다.

검색을 시작할 index가 음수일 경우 배열의 끝에서부터 검색을 시작합니다.

 

 

반환값

배열 내의 찾고자 하는 값이 일치하는 첫 번째 요소의 index를 반환합니다.

찾으려는 값이 배열에 존재하지 않으면 -1을 반환합니다.

 

 

const fruits = ['melon', 'apply', 'banana', 'lemon','apply'];
console.log(fruits.indexOf('apply', 1)); // 1

fruits.indexOf('apply', 1)

fruits배열 안에 'apply' 요소가 두 개 있습니다.

indexOf() 메서드를 사용해 'apply'을 인덱스 1번부터 순서대로 찾아 

첫 번째 'apply' 요소의 인덱스 1을 반환합니다.

 

 

const fruits = ['apply', 'apply', 'apply', 'apply'];
console.log(fruits.indexOf('apply')); // 0

fruits.indexOf('apply')

배열 내에서 값이 'apply'인 첫 번째 index는 0입니다.

 

 

const arr = [2, 2, '2', '2', 2];
console.log(arr.indexOf('2')); // 2
console.log(arr.indexOf(2)); // 0
console.log(arr.indexOf('2', 2)); // 2
console.log(arr.indexOf(0)); // -1

arr.indexOf('2')

배열 내에서 값이 '2'인 첫 번째 index는 2입니다.

 

arr.indexOf(2)

배열 내에서 값이 2인 첫 번째 index는 0입니다.

  • indexOf() 메서드는 === 연산자를 사용하여 비교하며,
    타입과 값이 모두 동일한 값이어야 같은 값으로 처리합니다.

 

arr.indexOf('2', 2)

배열 내에서 index 2 이후에 나오는 값이 '2'인 첫 번째 index는 2입니다.

 

arr.indexOf(0)

배열에 찾고자 하는 값 0이 없으므로 -1을 반환합니다.

 

 

indexOf() 메서드를 사용하여 특정 값이 있는 모든 index 찾기

let array = [2, 2, '2', '2', 2];
let fromIndex = array.indexOf("2");
while (fromIndex != -1) {
  console.log(fromIndex); // 2, 3
  fromIndex = array.indexOf("2", fromIndex + 1);
}

indexOf() 메서드는 배열 안에서 특정값의 첫 번째 index만 반환합니다.

 

위 예제와 같이 특정값이 존재하는 모든 index를 찾으려면 반복문을 사용해야 합니다.

indexOf의 결과가 -1이 될 때까지 

fromIndex값을 이전에 찾아낸 index값 이후로 설정해 주면서

특정값이 있는 모든 index를 찾아냅니다.

 

 

 

indexOf() 메서드를 이용하여 

배열에서 특정 값의 index를 찾는 방법을 알아보았습니다.

다음 포스팅에서는

lastIndexOf() 메서드를 이용한 배열에서 특정 값의 index를 찾는 방법을 알아봅니다.

728x90