sortedIndexOf
INFO
この関数は互換性のために es-toolkit/compat
からのみインポートできます。これは、代替可能なネイティブ JavaScript API が存在するか、まだ十分に最適化されていないためです。
es-toolkit/compat
からこの関数をインポートすると、lodash と完全に同じように動作します。
この関数は、ソートされた配列内で2番目の引数値が最初に出現するインデックスを見つけます。つまり、探している値がソートされた配列の何番目に位置しているかを教えてくれる関数です。sortedIndex関数を使用して、繰り返し比較した後にインデックスを返します。
インターフェース
typescript
export function sortedIndexOf(array: ArrayLike | null | undefined, value: T): number;
パラメータ
array
(ArrayLike | null | undefined
): ソートされた配列です。配列が null または undefined の場合、-1 を返します。value
(T
): ソートされた配列内で比較を通じて探す値。
戻り値
(number
): ソート順序を維持するために値を挿入すべきインデックス。
例
typescript
import { sortedIndexOf } from 'es-toolkit/compat';
const numbers = [11, 22, 33, 44, 55];
sortedIndexOf(numbers, 11); // 戻り値: 0
sortedIndexOf(numbers, 30); // 戻り値: -1
// 値が重複している場合、最初の値のインデックスを返します。
const duplicateNumbers = [1, 2, 2, 3, 3, 3, 4];
sortedIndexOf(duplicateNumbers, 3); // 戻り値: 3
// 配列がソートされていない場合、間違ったインデックスを返すことがあります。
const unSortedArray = [55, 33, 22, 11, 44];
sortedIndexOf(unSortedArray, 11); // 戻り値: -1
// -0 と 0 は同じように扱われます。
const mixedZeroArray = [-0, 0];
sortedIndexOf(mixedZeroArray, 0); // 戻り値: 0
sortedIndexOf(mixedZeroArray, -0); // 戻り値: 0
// 配列のようなオブジェクトでも動作します。
const arrayLike = { length: 3, 0: 10, 1: 20, 2: 30 };
sortedIndexOf(arrayLike, 20); // 戻り値: 1