Skip to content

indexOf

INFO

出于兼容性原因,此函数仅在 es-toolkit/compat 中提供。它可能具有替代的原生 JavaScript API,或者尚未完全优化。

es-toolkit/compat 导入时,它的行为与 lodash 完全一致,并提供相同的功能,详情请见 这里

查找数组中第一个出现的值的索引。

此方法类似于 Array.prototype.indexOf,但也能找到 NaN 值。 它使用严格相等 (===) 来比较 NaN 以外的元素。

签名

typescript
function indexOf<T>(array: T[], searchElement: T, fromIndex?: number): number;

参数

  • array (T[]): 要搜索的数组。

array 可以是 ArrayLike<T>nullundefined

为了确保与 lodash 的完全兼容性,indexOf 函数会按照以下方式处理 array

  • 如果 arrayArrayLike<T>,它会使用 Array.from(...) 将其转换为数组。
  • 如果 arraynullundefined,它会被视为一个空数组。
  • searchElement (T): 要搜索的值。
  • fromIndex (number, 可选): 开始搜索的索引。

返回

(number): 数组中第一个出现的值的索引(以零为基准),如果未找到该值,则返回 -1

示例

typescript
const array = [1, 2, 3, NaN];
indexOf(array, 3); // => 2
indexOf(array, NaN); // => 3