본문 바로가기

프로그래밍/[javascript] 자바스크립트

[JavaScript] lastIndexOf() 메서드 설명 및 예제

by GenieIT* 2024. 11. 9.

728x90
728x90

 

1. lastIndexOf() 메서드 정의

  • JavaScript의 lastIndexOf() 메서드배열이나 문자열에서 특정 요소나 문자열이 마지막으로 나타나는 인덱스를 반환하는 메서드입니다.
  • 찾고자 하는 요소나 문자열이 없으면 -1을 반환합니다.
  • lastIndexOf()는 뒤에서부터 시작하여 탐색하기 때문에, 뒤쪽에 가까운 값을 찾는 데 유용합니다.

 

2. lastIndexOf() 메서드 문법

2-1. 배열에서의 문법

  • searchElement: 찾고자 하는 요소입니다.
  • fromIndex (선택적): 탐색을 시작할 인덱스입니다. 기본값은 array.length - 1로 설정되어 끝에서부터 탐색이 시작됩니다. 음수를 사용하면 배열의 끝에서부터 상대적인 위치로 계산됩니다.
array.lastIndexOf(searchElement, fromIndex)

 

2-2. 문자열에서의 문법

  • searchString: 찾고자 하는 문자열입니다.
  • fromIndex (선택적): 탐색을 시작할 인덱스입니다. 기본값은 문자열의 끝이며, 음수는 0으로 간주됩니다.
string.lastIndexOf(searchString, fromIndex)

 

3. 주요 특징

  1. 뒤에서부터 탐색: lastIndexOf()는 배열 또는 문자열의 끝에서부터 시작하여 일치하는 첫 번째 요소나 문자열의 인덱스를 반환합니다.
  2. 대소문자 구분: 문자열에서 사용할 경우 대소문자를 구분하여 탐색합니다.
  3. 존재하지 않을 때 -1 반환: 배열이나 문자열에 searchElement나 searchString이 없을 경우 -1을 반환합니다.
  4. 배열의 NaN 탐색: indexOf()와 마찬가지로 NaN을 찾지 못합니다. NaN은 자기 자신과도 같지 않기 때문입니다.

 

4. 사용 예제

4-1. 배열에서의 lastIndexOf() 사용 예제

  • 이 메서드는 진행 방향이 거꾸로인 점을 기억해야 합니다.
let fruits = ["apple", "banana", "cherry", "apple", "banana"];

console.log(fruits.lastIndexOf("banana")); // 4 (마지막 "banana"의 인덱스)
console.log(fruits.lastIndexOf("apple")); // 3 (마지막 "apple"의 인덱스)
console.log(fruits.lastIndexOf("grape")); // -1 ("grape"는 배열에 없음)

// 시작 인덱스 지정
console.log(fruits.lastIndexOf("banana", 3)); // 1 (3번 인덱스부터 거꾸로 탐색하여 발견한 "banana")
console.log(fruits.lastIndexOf("apple", 2)); // 0 (2번 인덱스부터 거꾸로 탐색하여 발견한 "apple")

// 음수 인덱스 지정
console.log(fruits.lastIndexOf("banana", -2)); // 1 (끝에서 두 번째 위치부터 탐색하여 찾은 "banana")
console.log(fruits.lastIndexOf("apple", -3)); // 0 (끝에서 세 번째 위치부터 탐색하여 찾은 "apple")

 

 

4-2. 문자열에서의 lastIndexOf() 사용 예제

let text = "Hello, world! Hello, everyone!";

console.log(text.lastIndexOf("Hello")); // 14 (마지막 "Hello"의 인덱스)
console.log(text.lastIndexOf("o")); // 20 (마지막 "o"의 인덱스)
console.log(text.lastIndexOf("World")); // -1 ("World"는 대소문자 구분으로 찾지 못함)

// 시작 인덱스 지정
console.log(text.lastIndexOf("Hello", 10)); // 0 (10번 인덱스부터 거꾸로 탐색하여 찾은 "Hello")
console.log(text.lastIndexOf("o", 18)); // 8 (18번 인덱스부터 거꾸로 탐색하여 찾은 "o")

 

 

4-3. 특정 값 모든 인덱스 위치 찾아내는 예제 

let phrase = "The quick brown fox jumps over the lazy dog";
let searchTerm = "o";
let index = phrase.lastIndexOf(searchTerm);

while (index !== -1) {
  console.log(`Found "${searchTerm}" at index ${index}`);
  index = phrase.lastIndexOf(searchTerm, index - 1); // 다음 위치에서 탐색 계속
}

// Found "o" at index 43
// Found "o" at index 26
// Found "o" at index 17
// Found "o" at index 12

 

 

728x90