2016-03-18 4 views
0

ich einige grundlegende JavascriptJavascript gibt mir einen anderen Wert als ich erwartet hatte

// sample value of bigArrayOMG, real variable name!! 
var bigArrayOMG = [3, 5, 7, 12, 13, 14, 20, 23, 29, 29, 102, 29, 39, 40, 56]; 

var bigArrayObject = function(bigArrayOMG) { 
    bigArrayOMG = bigArrayOMG[3] + bigArrayOMG[9]; 
    return bigArrayOMG; 
} 

bigArrayObject(bigArrayOMG); 

Und bin immer das Ergebnis von 42 schreibe, wenn ich 36. erwartet Weiß jemand, warum?

+2

Dies ist eine Art von unklaren-Code. Wenn Sie die äußere Variable mit einem Funktionsparameter überschreiben, den Sie einem Wert eines anderen Typs zuweisen, brauchte ich einen Moment, um sicher zu sein, dass dies zu Nebenwirkungen führen würde. Ich schlage vor, ein paar verschiedene Variablennamen hinzuzufügen. –

+0

Ich denke, Sie haben Recht Jeremy Banks –

+0

das Ergebnis sollte 41 sein, nicht 42 – webdeb

Antwort

5

Sie müssen verstehen, dass bigArrayOMG[3] zum 4. zeigt Index, weil die Array-Indizierung bei 0 beginnt.

bigArrayOMG[3] + bigArrayOMG[9]

entspricht:

12 + 29 = 41

+0

OOOOoooohhhhhhhhhh. Macht so viel Sinn jetzt;). –

+0

Ich bin froh, dass ich helfen konnte. –

+0

Wenn ich 42 Kätzchen habe, ist ein Kittie kein Kittie? –

4

JavaScript-Array-Indizes beginnen bei 0, so:

bigArrayOMG = [3, 5, 7, 12, 13, 14, 20, 23, 29, 29, 102, 29, 39, 40, 56]; 
bigArrayOMG[0] == 3 
bigArrayOMG[3] == 12 
bigArrayOMG[9] == 29 

Wenn Sie Ihr Ergebnis wollen 36 sein, dann verwenden:

bigArrayOMG[2] + bigArrayOMG[8] 
      ^   ^
      7    29 
+0

Mein Array ist RALLY BIG :::::: DDDDDD –

+0

Wenn ich nur wollte, dass mein Ergebnis 36 ist, würde ich '' 'var tinyMind = 36;' '' –

+0

lol ;) wenn du mich bekommst –

Verwandte Themen