2011-01-07 103 views
0

所以,這裏是我的問題..可能只是累了,但是,我只想在數組沒有出現的情況下計數到++。在4次迭代在迭代期間將數組與數組進行比較(續)

含義,計數器應++只在迭代1,3,4

var array = [], number, temp = [4,2,5,9], counter = 0; 
for(var i = 0; i <= 3; i += 1) { 
    array.push(i); 
    number = temp[i]; 
} 
document.write(counter); 

但我在這裏畫一個空白...幫助?

(不,這不是功課)

回答

0
if (array.indexOf(number) < 0) 
    counter++; 
0

遺憾的是JS沒有一個「in_array」,但它非常直截了當:
@MikeSamuel指出,你可以使用的indexOf(感謝邁克)。所以,他這樣說:

var array = [], number, temp = [4,2,5,9], counter = 0; 
for(var i = 0; i <= 3; i += 1) { 
    array.push(i); 
    number = temp[i]; 
    if (temp.indexOf(i)==-1) // much simpler, assuming you're checking if i is in temp. 
     counter++; // increase counter if it is not. 
} 
document.write(counter); 

我不知道哪裏想要的邏輯,所以你必須要明白這一點或者更具體。只要知道你需要迭代你正在檢查的數組,並檢查「針」是否在「乾草堆」數組中。

編輯剛纔相反,剛剛添加了bool來檢查是否存在。

+0

`Array.prototype.indexOf`在ES5中定義。如果您正在測試遏制,那麼您是否需要在比賽中「休息」,以便在「temp」包含重複時不會計算在內? – 2011-01-07 20:26:15

相關問題