Movatterモバイル変換


[0]ホーム

URL:


  1. 개발자를 위한 웹 기술
  2. JavaScript
  3. JavaScript 참고서
  4. 표준 내장 객체
  5. Array
  6. lastIndexOf()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Array.prototype.lastIndexOf()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015년 7월⁩.

Array 인스턴스의lastIndexOf() 메서드는 배열에서 특정 요소를 찾을 수 있는 마지막 인덱스를 반환하거나, 해당 요소가 없으면-1을 반환합니다. 배열은fromIndex에서 시작하여 역방향으로 검색됩니다.

시도해 보기

const animals = ["Dodo", "Tiger", "Penguin", "Dodo"];console.log(animals.lastIndexOf("Dodo"));// Expected output: 3console.log(animals.lastIndexOf("Tiger"));// Expected output: 1

구문

js
lastIndexOf(searchElement)lastIndexOf(searchElement, fromIndex)

매개변수

searchElement

배열에서 찾을 요소.

fromIndexOptional

역방향 검색을 시작하는 0부터 시작하는 인덱스로,정수로 변환됩니다.

  • 음수 인덱스는 배열 끝에서부터 다시 계산됩니다. 만약fromIndex < 0 이라면,fromIndex + array.length가 사용됩니다.
  • fromIndex < -array.length인 경우, 배열을 검색하지 않고-1을 반환합니다. 개념적으로 배열이 시작되기 전 존재하지 않는 위치에서 시작해 그곳에서부터 거꾸로 가는 것이라고 생각하면 됩니다. 도중에 배열 요소가 없으므로searchElement를 찾을 수 없습니다.
  • fromIndex >= array.length 또는fromIndex를 생략하면,array.length - 1이 사용되어 전체 배열을 검색하게 됩니다. 개념적으로 배열 끝 너머 존재하지 않는 위치에서 시작하고 그곳에서부터 거꾸로 가는 것이라고 생각하면 됩니다. 결국 배열의 실제 끝 위치에 도달하고, 이 지점에서 실제 배열 요소를 통해 역순 검색을 시작합니다.

반환 값

배열에 있는searchElement의 마지막 인덱스입니다. 찾을 수 없으면-1입니다.

설명

lastIndexOf() 메서드는엄격한 동등성(=== 연산자에서 사용하는 것과 동일한 알고리즘)을 사용하여searchElement를 배열 요소와 비교합니다. 두 개의NaN 값은 동일한 것으로 비교되지 않으므로searchElementNaN인 경우,lastIndexOf()는 항상-1을 반환합니다.

예제

lastIndexOf() 사용하기

다음 예제에서는lastIndexOf()를 사용하여 배열에서 값을 찾습니다.

js
const numbers = [2, 5, 9, 2];numbers.lastIndexOf(2); // 3numbers.lastIndexOf(7); // -1numbers.lastIndexOf(2, 3); // 3numbers.lastIndexOf(2, 2); // 0numbers.lastIndexOf(2, -2); // 0numbers.lastIndexOf(2, -1); // 3

NaN을 찾기위해lastIndexOf()을 사용할 수 없습니다.

js
const array = [NaN];array.lastIndexOf(NaN); // -1

요소의 모든 위치 찾기

다음 예제에서는lastIndexOf를 사용하여 주어진 배열에 있는 요소의 모든 인덱스를 찾고, 발견된 요소를 다른 배열에 추가하기 위해push()를 사용합니다.

js
const indices = [];const array = ["a", "b", "a", "c", "a", "d"];const element = "a";let idx = array.lastIndexOf(element);while (idx !== -1) {  indices.push(idx);  idx = idx > 0 ? array.lastIndexOf(element, idx - 1) : -1;}console.log(indices);// [4, 2, 0]

여기서는idx === 0인 경우를 별도로 처리해야 합니다. 요소가 배열의 첫 번째 요소인 경우fromIndex 매개변수에 관계없이 항상 검색되기 때문입니다. 이는indexOf() 메서드와 다릅니다.

희소 배열에 lastIndexOf() 사용하기

배열의 빈 슬롯을 검색하기 위해lastIndexOf()를 사용할 수 없습니다.

js
console.log([1, , 3].lastIndexOf(undefined)); // -1

배열이 아닌 객체에 lastIndexOf() 사용하기

lastIndexOf() 메서드는thislength 속성을 읽은 다음 키가length보다 작은 음이 아닌 정수인 각 속성에 접근합니다.

js
const arrayLike = {  length: 3,  0: 2,  1: 3,  2: 2,  3: 5, // length가 3 이므로 lastIndexOf()에서 무시됩니다.};console.log(Array.prototype.lastIndexOf.call(arrayLike, 2));// 2console.log(Array.prototype.lastIndexOf.call(arrayLike, 5));// -1

명세서

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.lastindexof

브라우저 호환성

같이 보기

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp