gpt4 book ai didi

javascript - 如何获取数组中所有出现的相同值的索引?

转载 作者:搜寻专家 更新时间:2023-11-01 05:24:01 25 4
gpt4 key购买 nike

我在一个数组中使用一组数值,其中重复某些值。我想找到重复值出现的 ALL 的索引。

例如,我有以下使用 indexOf() 的代码:

var dataset = [2,2,4,2,6,4,7,8];
return dataset.indexOf(2);

但这只给出了 2 第一次出现的索引。 (即它返回值 0。)

但是,我希望返回所有出现的 2 的索引(即 0,1,3)。我怎样才能做到这一点? (我知道我可以使用 for 循环,但我想知道是否有更好的方法来执行此操作而无需遍历整个数组。基本上,我试图节省显式的开销遍历整个数组。)

最佳答案

@Bagavatu:如果你不想使用 for 循环,你可以试试这个 fiddle -

var dataset = [2,2,4,2,6,4,7,8];
var results = [];

var ind

// the while loop stops when there are no more found
while( ( ind = dataset.indexOf( 2 ) ) != -1 ){
results.push( ind + results.length )
dataset.splice( ind, 1 )
}

return results;

注意:使用 for 循环会更快。查看评论。

var dataset = [2,2,4,2,6,4,7,8];
var results = [];
for ( i=0; i < dataset.length; i++ ){
if ( dataset[i] == 2 ){
results.push( i );
}
}

return results;

关于javascript - 如何获取数组中所有出现的相同值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17312328/

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