我写了下面的函数,它对给定的数组和值将返回数组中的值的索引数组。 我观察到它仅适用于某些元素?返回给定元素的所有数组索引
var arr = [1,2,3,1,2,3,3,4,3]
var findAll = function(arr, val) {
var results = [];
var length = arr.length;
var pos = 0;
while(pos < length) {
pos = arr.indexOf(val, pos);
if (pos == -1) return [];
results.push(pos);
pos = pos + 1;
}
return results;
}
//Output:
findAll(arr,3)
[2, 5, 6, 8]
findAll(arr,1)
[] // expected [0,3]
findAll(arr,2)
[] // expected [1,4]
findAll(arr,4)
[] // expected [7]
我需要使用“的indexOf”方法按我的任务:) –
嗯,这是一个愚蠢的分配由xD任何方式,在这种情况下,@ GZ的【答案】来实现这一( http://stackoverflow.com/a/24526042/1835379)可能最能解释什么是错的。 – Cerbrus