Skip to content

findIndex (Lodash 호환성)

Array.prototype.findIndex를 사용하세요

findIndex 함수는 다양한 조건 형식 처리, fromIndex 처리 등의 추가 기능으로 인해 느리게 동작해요.

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

배열에서 조건에 맞는 첫 번째 요소의 인덱스를 찾아요.

typescript
const index = findIndex(arr, doesMatch, fromIndex);

레퍼런스

findIndex(arr, doesMatch, fromIndex)

배열에서 특정 조건에 맞는 첫 번째 요소의 위치를 찾고 싶을 때 findIndex를 사용하세요. 다양한 방식으로 조건을 지정할 수 있어요. 조건에 맞는 요소가 없으면 -1을 반환해요.

함수로 조건을 지정하면 각 요소에 대해 함수를 실행하고 참을 반환하는 첫 번째 요소의 인덱스를 반환해요.

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

const users = [
  { id: 1, name: 'Alice', active: false },
  { id: 2, name: 'Bob', active: true },
  { id: 3, name: 'Charlie', active: true },
];

// 함수로 조건 지정
findIndex(users, user => user.active);
// Returns: 1

부분 객체로 조건을 지정하면 해당 속성들이 일치하는 첫 번째 요소의 인덱스를 반환해요.

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

// 부분 객체로 조건 지정
findIndex(users, { name: 'Bob', active: true });
// Returns: 1

속성 이름과 값의 배열로 조건을 지정하면 해당 속성이 그 값과 일치하는 첫 번째 요소의 인덱스를 반환해요.

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

// [속성명, 값] 배열로 조건 지정
findIndex(users, ['active', true]);
// Returns: 1

속성 이름만 지정하면 해당 속성이 참으로 평가되는 첫 번째 요소의 인덱스를 반환해요.

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

// 속성 이름으로 조건 지정
findIndex(users, 'active');
// Returns: 1

fromIndex를 지정하면 해당 인덱스부터 검색을 시작해요. 음수 값을 사용하면 배열 끝에서부터 계산해요.

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

// 인덱스 2부터 검색 시작
findIndex(users, user => user.active, 2);
// Returns: 2

// 배열 끝에서 두 번째부터 검색
findIndex(users, user => user.active, -2);
// Returns: 1

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

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

findIndex(null, user => user.active); // -1
findIndex(undefined, 'active'); // -1

파라미터

  • arr (ArrayLike<T> | null | undefined): 검색할 배열이에요.
  • doesMatch (((item: T, index: number, arr: any) => unknown) | Partial<T> | [keyof T, unknown] | PropertyKey, 선택): 일치 조건이에요. 함수, 부분 객체, 키-값 쌍, 또는 속성 이름이 될 수 있어요.
  • fromIndex (number, 선택): 검색을 시작할 인덱스예요. 기본값은 0이에요.

반환 값

(number): 조건에 맞는 첫 번째 요소의 인덱스를 반환해요. 조건에 맞는 요소가 없으면 -1을 반환해요.

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