indexOf
是 JavaScript 中的一个数组方法,用于查找数组中某个元素的第一个匹配项的索引。如果元素不存在于数组中,则返回 -1
。这个方法只能用于查找单个值,而不是多个值。
0
开始。indexOf
方法语法简单,易于理解和使用。indexOf
的性能通常是可以接受的。indexOf
是数组的一个内置方法,属于 ECMAScript 标准的一部分。
indexOf
返回的值是否为 -1
来判断元素是否在数组中。let arr = [1, 2, 3, 4, 5];
// 查找值为 3 的元素的索引
let index = arr.indexOf(3);
console.log(index); // 输出:2
// 查找不存在的元素的索引
index = arr.indexOf(6);
console.log(index); // 输出:-1
如果你需要查找多个值,indexOf
方法本身并不支持。但是,你可以使用其他方法或技巧来实现这一功能。
解决方法一:使用循环
function findIndexes(arr, values) {
let indexes = [];
for (let value of values) {
let index = arr.indexOf(value);
if (index !== -1) {
indexes.push(index);
}
}
return indexes;
}
let arr = [1, 2, 3, 4, 5, 3];
let valuesToFind = [3, 6];
let indexes = findIndexes(arr, valuesToFind);
console.log(indexes); // 输出:[2, 5]
解决方法二:使用 Array.prototype.filter
和 Array.prototype.indexOf
let arr = [1, 2, 3, 4, 5, 3];
let valuesToFind = [3, 6];
let indexes = valuesToFind.filter(value => arr.includes(value)).map(value => arr.indexOf(value));
console.log(indexes); // 输出:[2, 5]
解决方法三:使用 for...of
循环和 Array.prototype.includes
let arr = [1, 2, 3, 4, 5, 3];
let valuesToFind = [3, 6];
let indexes = [];
for (let value of valuesToFind) {
if (arr.includes(value)) {
indexes.push(arr.indexOf(value));
}
}
console.log(indexes); // 输出:[2, 5]
以上方法可以帮助你在数组中查找多个值的索引。选择哪种方法取决于你的具体需求和偏好。
领取专属 10元无门槛券
手把手带您无忧上云