2013-04-26 180 views
3

我想在Javascript中創建while循環。我有一個數組,其中包含5個數字。我也有一個名爲bigone的變量設置爲0.我正在嘗試編寫一個while循環,該循環具有一個將數組中的每個值與bigone進行比較的if語句。當數組插槽中的數字大於bigone時,我想將該數字分配給bigone。我無法弄清楚。這是我到目前爲止,但它不會工作。是的,這是家庭作業,不,我不是要求答案,只是爲了一些正確的方向指導。這裏是據我所知︰Javascript while while語句循環

while (numbers.length < 5) { 
    if (numbers > bigone) { 
    bigone = numbers 
    } 
    } 

任何想法?

回答

2

實現一個計數器,以便您可以訪問數組中的值。

var i = 0; 
while(numbers.length < 5 && i < numbers.length) 
{ 
    if(numbers[i] > bigone) 
     bigone = numbers[i]; 

    i++; 
} 

這是相同的循環,但與for。不知道爲什麼要檢查數組中是否有5個或更少的元素,但可以。這會檢查每次迭代的長度。

for(var i = 0; numbers.length < 5 && i < numbers.length; i++) 
{ 
    if(numbers[i] > bigone) 
     bigone = numbers[i]; 
} 

一個更好的方法來只檢查一次是包裹for環在if聲明是這樣的:

if(numbers.length < 5) 
{ 
    for(var i = 0; i < numbers.length; i++) 
    { 
     if(numbers[i] > bigone) 
      bigone = numbers[i]; 
    } 
} 
1

我相信你正在努力尋找數組中數量最多。 另一種方法是使用forEach方法,它將回調函數作爲參數。對於數組的每個元素,回調都會執行一次。

var numbers = [4, 12, 3, 5, 1] 
var big = 0; 
numbers.forEach(function(number) { if(number > big) big = number; }); 
console.log(big); //Prints 12 

+0

最佳解決方案。不過,我想提及的僅僅是ES5,例如在IE 8及以下版本中不起作用。 – basarat 2013-04-26 04:25:52