我寫了下面的函數,它對給定的數組和值將返回數組中的值的索引數組。 我觀察到它僅適用於某些元素?返回給定元素的所有數組索引
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