Skip to content

findLastIndex (Lodash 호환성)

Array.prototype.findLastIndex를 사용하세요

findLastIndex 함수는 null이나 undefined 처리, 부분 객체 매칭, 프로퍼티 이름 매칭 등의 추가 기능으로 인해 느리게 동작해요.

대신 더 빠르고 현대적인 Array.prototype.findLastIndex를 사용하세요.

배열에서 조건을 만족하는 마지막 요소의 인덱스를 찾아요.

typescript
const lastIndex = findLastIndex(array, predicate, fromIndex);

레퍼런스

findLastIndex(array, predicate, fromIndex)

배열의 끝에서부터 시작해서 주어진 조건과 일치하는 첫 번째 요소의 인덱스를 찾고 싶을 때 findLastIndex를 사용하세요. 조건을 만족하는 요소가 없으면 -1을 반환해요.

이 함수는 다양한 방식으로 조건을 지정할 수 있어요. 함수를 전달하면 각 요소에 대해 함수를 실행하고, 부분 객체를 전달하면 요소가 해당 속성들을 가지고 있는지 확인해요. 배열 형태의 키-값 쌍을 전달하면 특정 프로퍼티가 주어진 값과 일치하는지 확인하고, 문자열을 전달하면 해당 프로퍼티가 참으로 평가되는 값인지 확인해요.

typescript
import { findLastIndex } from 'es-toolkit/compat';

const users = [
  { user: 'barney', active: true },
  { user: 'fred', active: false },
  { user: 'pebbles', active: false },
];

// 함수를 사용해서 조건을 지정해요.
findLastIndex(users, o => o.user === 'pebbles');
// Returns: 2

// 부분 객체를 사용해서 일치하는 요소를 찾아요.
findLastIndex(users, { user: 'barney', active: true });
// Returns: 0

// 프로퍼티-값 쌍을 사용해서 일치하는 요소를 찾아요.
findLastIndex(users, ['active', false]);
// Returns: 2

// 프로퍼티 이름을 사용해서 참으로 평가되는 값을 가진 요소를 찾아요.
findLastIndex(users, 'active');
// Returns: 0

검색 시작 위치를 지정할 수도 있어요. fromIndex가 음수면 배열의 끝에서부터 계산해요.

typescript
import { findLastIndex } from 'es-toolkit/compat';

const numbers = [1, 2, 3, 4, 5];

// 인덱스 3부터 역방향으로 검색해요.
findLastIndex(numbers, n => n < 4, 2);
// Returns: 2

// 음수 인덱스를 사용하면 끝에서부터 계산해요.
findLastIndex(numbers, n => n > 2, -2);
// Returns: 3

null이나 undefined는 빈 배열로 처리해요.

typescript
import { findLastIndex } from 'es-toolkit/compat';

findLastIndex(null, n => n > 0); // -1
findLastIndex(undefined, n => n > 0); // -1

파라미터

  • array (ArrayLike<T> | null | undefined): 검색할 배열이에요.
  • predicate (((item: T, index: number, arr: any) => unknown) | Partial<T> | [keyof T, unknown] | PropertyKey, 선택): 각 요소를 테스트할 조건이에요. 함수, 부분 객체, 프로퍼티-값 쌍, 또는 프로퍼티 이름을 사용할 수 있어요. 기본값은 항등 함수예요.
  • fromIndex (number, 선택): 검색을 시작할 인덱스예요. 음수면 배열의 끝에서부터 계산해요. 기본값은 array.length - 1이에요.

반환 값

(number): 조건을 만족하는 마지막 요소의 인덱스를 반환해요. 조건을 만족하는 요소가 없으면 -1을 반환해요.

MIT 라이선스에 따라 배포됩니다.