2013-08-20 171 views
-1

我試圖編寫一個for循環,該循環找到陣列中最大的元素並將該元素記錄到控制檯。我到目前爲止,但它不起作用。誰能幫忙?查找陣列中最大的元素

var array = [3, 6, 2, 56, 32, 5, 89, 32]; 
var largest = 0; 

for (var i = 0; 0 < 100; i++) { 
    if (array[i] > largest) { 
     largest = array[i]); 
    } 
} 

console.log(largest); 
+7

'Math.max.apply(0,數組)// 89' – elclanrs

+4

'0 <100' ????? – alfasin

+0

或Math.max(0,150,30,20,38); < - 如果可以將它們作爲參數,則不需要應用或循環。 – cocco

回答

0

變化的for循環到:

for (var i = 0; i < array.length; i++) { 

@plalx是正確的,還有一個問題,在該行:

largest = array[i]); 

有不必要的右括號 「)」應該刪除。 應用這兩個更改 - 代碼將工作。

+0

這不是唯一的問題= P – plalx

+0

@plalx你是對的 - 還有一個問題,請參閱更新的答案。 – alfasin

0

好,@elclanrs表示,在註釋中已經,但是...

您可以使用Math.max,這需要各種數目的數字作爲參數。但是Math.max不會將數組作爲參數,所以我們使用Function.prototype.apply來傳遞數組中的每個元素作爲單獨的參數。

Math.max.apply(Math, [3, 6, 2, 56, 32, 5, 89, 32]);

注:申請的第一個參數是到的上下文對象將執行該功能時可以設置的對象。換句話說,它指定了this的值。在這種情況下,它可能是null,它不會有任何區別。

至於你的初始代碼,你有一些語法錯誤,你應該lint你的代碼。