我在数组中使用一组数值,其中某些值将被重复。我想找到指数ALL重复值的发生。如何获取数组中所有出现的相同值的索引?
例如,我使用indexOf()
以下代码:
var dataset = [2,2,4,2,6,4,7,8];
return dataset.indexOf(2);
但这仅给出2
中第一次出现的索引。 (即它返回值0
。)
但是,我希望返回所有出现2
的索引(即0,1,3
)。我怎样才能做到这一点? (我知道我可以使用for
循环,但是我想知道是否有更好的方法来完成这个操作,而不需要迭代整个数组。基本上,我试图节省显式迭代整个数组的开销。)
感谢您的答案,但这仍然涉及'for'循环迭代。 –
@Bagavatu - 抱歉,我错过了你的帖子。我认为你不能避免某种形式的迭代,因为你需要检查每个值单独匹配。即使你使用诸如“过滤器”之类的东西,它仍然会遍历每个条目,而不是明确的。 – Bungus
是的,我担心会是这样。如果必须涉及迭代,我想找到一种方法来最小化迭代的开销。所以像'过滤器'。 (我的实际数据集长达数百个值;为简洁起见,我只是缩短了它。) –