gpt4 book ai didi

javascript - 如何查找数组中所有出现的元素的索引?

转载 作者:IT王子 更新时间:2023-10-29 02:45:09 26 4
gpt4 key购买 nike

我试图在 JavaScript 数组中查找元素(例如“Nano”)的所有实例的索引。

var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];

我试过了 jQuery.inArray ,或类似地,.indexOf() , 但它只给出了元素最后一个实例的索引,即在本例中为 5。

如何为所有实例获取它?

最佳答案

.indexOf() method有一个可选的第二个参数,用于指定开始搜索的索引,因此您可以在循环中调用它以查找特定值的所有实例:

function getAllIndexes(arr, val) {
var indexes = [], i = -1;
while ((i = arr.indexOf(val, i+1)) != -1){
indexes.push(i);
}
return indexes;
}

var indexes = getAllIndexes(Cars, "Nano");

你并没有真正说清楚你想如何使用索引,所以我的函数将它们作为一个数组返回(或者如果没有找到该值则返回一个空数组),但是你可以用循环内的各个索引值。

更新:根据 VisioN 的评论,一个简单的 for 循环可以更有效地完成相同的工作,并且更容易理解,因此更容易维护:

function getAllIndexes(arr, val) {
var indexes = [], i;
for(i = 0; i < arr.length; i++)
if (arr[i] === val)
indexes.push(i);
return indexes;
}

关于javascript - 如何查找数组中所有出现的元素的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com