2013-04-18 177 views
3

我遇到了,我還是設法解決問題,但老實說,我不明白這是如何工作。分配一個數組值的變量

var array = [3, 6, 2, 56, 32, 5, 89, 32]; 
var largest = 0; 
//My code 
for (var i = 0; i < array.length; i++) { 
    if (array[i] > largest) { 
     largest = array[i]; 
    } 
} 

console.log(largest); 

如何我的數組if語句中值分配給我的變量?

爲什麼此版本無法正常工作?

array[i] = largest; 

我對編程非常陌生,我相信理解像這樣小的基本事物可以幫助很多初學者成爲合格的程序員。

+0

除了從書本上一個偉大的在線資源是輝煌的MDN。 [** MDN - 學習JavaScript **](https://developer.mozilla.org/en/learn/javascript),[** MDN - JavaScript的文檔索引**](https://developer.mozilla.org/ en/learn/javascript)在那裏你可以找到從數組到if語句到閉包的任何文檔和代碼示例。從最簡單到最複雜。希望這個資源可以幫助你實現你的目標。 – Nope

回答

2
if(array[i] > largest) { 
      largest = array[i]; 
     } 

array[i]3largest0然後如果條件通行證和

largest = array[i]; 

分配值從右到左 現在largest值爲3

所以下一個週期array[i]6所以下一個6 > 3是真的,它會再次改變largest to 6

喜歡它會給你最大的號碼。

+0

我認爲有些事情只是點擊了我的頭,我現在開始理解如何轉讓WORKS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!謝謝你,謝謝你,謝謝你。賦值通過從右側到左側分配值來工作?這是每種任務的情況嗎? a = b是否一樣; – mrageh

+0

是分配的工作原理是=該操作 – NPKR

+0

所以,當我使用=簽署其稱​​爲分配和值從右側到左側分配。如果我錯了,請糾正我。 – mrageh

1

此代碼試圖值的數組來計算的最大值..

array[i] = largest; 

會修改這是不希望輸入自己......你需要找到的最大值從給定的輸入..而不是修改給定的輸入位置一些最大的價值。

這就是爲什麼

largest = array[i] 

是正確的。

2

我想你弄錯賦值語句與數學平等聲明編程。

Assignment vs Equality

在代碼中,當你說最大=陣列[I]要指定給變量「最大」在陣列的第i個位置的元素的值。注意這裏數組並沒有改變它在這個賦值中的任何值。

在另一方面,陣列[I] =最大會嘗試分配給第i個位置的陣列上的變量「最大」的當前值。

+0

woooooooow很快就是謝謝你,但也許我在這裏很愚蠢,但我仍然不明白。我知道任務與數學的平等不一樣。真的很沮喪,也許我需要睡上一覺?我甚至不知道要問澄清,我不明白:( – mrageh

+0

我看你有這得益於@NPKR答案是什麼;!) – EduG

+0

是的,我也感謝您的輸入 – mrageh

1

當分配一個值到一個變量,該變量必須是在賦值運算符左側(等號「=」)。

這樣對左邊的變量:

largest = array[i]; 

它把數組[我]值到最大變量,所以它的工作原理。

這種方式是倒退:

array[i] = largest; 

它把最大值到陣列[I]元素,你的陣列一堆在它的零結束。

+0

真的謝謝信息 – mrageh

相關問題