JavaScript Guidebook

JavaScript 完全知识体系

Array.prototype.indexOf()

Array.prototype.indexOf() 方法用于查找数组成员第一次出现指定字符的位置。

语法

语法:

arr.indexOf( searchElement [, fromIndex] )

类型声明:

interface Array<T> {
indexOf(searchElement: T, fromIndex?: number): number;
}

参数说明:

参数说明类型
searchElement要查找的数组元素any
fromIndex可选,在当前字符串中查找的起始索引,默认为 0number

返回值:

返回数组元素在当前数组中第一次查找到的起始位置(索引)

方法说明

该方法使用 Strict Equality(无论是绝对相等 ===,还是 Triple-equals 操作符都基于同样的方法)进行判断查找的元素与数组中包含的元素之间的关系。

代码示例

基本用法

var arr = [1, 2, 3, 4, 5];
arr.indexOf(1);
// 0
arr.indexOf(7);
// -1
arr.indexOf(4, 2);
// 3
arr.indexOf(3, -1);
// -1
arr.indexOf(3, -3);
// 2

找出指定元素出现的所有位置

// 存放指定元素出现的位置的数组
var indices = [];
// 被查找的数组
const array = ['a', 'b', 'a', 'c', 'a', 'd'];
// 查找的元素
var element = 'a';
var idx = array.indexOf(element);
while (idx != -1) {
indices.push(idx);
idx = array.indexOf(element, idx + 1);
}
console.log(indices);
// [0, 2, 4]

参考资料