2016-04-27 5 views
0

So mache ich einen 2d-Array wie folgt:Mathe mit Elementen eines 2d-Array tun?

var kcalVerdier:Array = new Array(92,80,103,36,53); 
var alleNumSteppers:Array = new Array(alleNumSteps.numStepMelk.value,alleNumSteps.numStepEgg.value,alleNumSteps.numStepBrød.value,alleNumSteps.numStepSmør.value,alleNumSteps.numStepOst.value); 
var c:Array = new Array(kcalVerdier,alleNumSteppers); 
function endreAntall(evt:Event) 
{ 


     txtTotalKcal.text = String(c[0] * [0]); 




} 

Ist es nicht möglich, multiplizieren 2 Werte eines 2D-Arrays zu tun? Ich erhalte diesen Fehler:

Szene 1, Layer 'Skript', Frame 1, Zeile 17, Spalte 38 1067: Implizite Koerzition eines Wertes vom Typ Array zu einem nicht verwandten Typ Nummer.

Ich verstehe nicht, warum, c [0] [0] sollte beides ganzzahlige Werte sein oder bin ich Missverständnis?

+0

Aber Sie haben nicht ein 2D-Array erstellen , 'c' ist ein Array mit allen Werten von' kcalVerdier' und 'alleNumSteppers'. – DodgerThud

+0

Beide sind Arrays, also ist c Array of Arrays. – 3vilguy

+0

Also ist es ein 2d-Array? – elektroluse

Antwort

1

Welche Werte möchten Sie eigentlich multiplizieren? Dadurch:

c[0] * [0] 

Sie versuchen, Array von Array zu multiplizieren.

c[0] wäre 1. Element von c Array, die in der Tat ist kcalVerdier Array. [0] macht neues Array mit einem Element (das ist 0);

so ist es wie [92,80,103,36,53] * [0]


[EDIT]

Ok, versuchen, dieses Stück Code:

// Check if both Arrays are what we want: 
trace("kcalVerdier => " + c[0]); 
trace("alleNumSteppers => " + c[0]); 
trace(); 

// Gett Arrays lengths 
var arr1Length:int = c[0].length; 
var arr2Length:int = c[1].length; 

// Check if both are the same length 
if(arr1Length == arr2Length) 
{ 
    // Let's iterate 
    for(var i:int = 0; i<arr1Length; i++) 
    { 
     trace(c[0][i] * c[1][i]); 
    } 
} 
+0

Oh ich sehe ... Idealerweise würde ich jeden Wert in kcalVerdier mit dem richtigen numerischen Stepper so [0] in KcalVerdier * [0] in alleNumSteppers und [1] * [1] und so weiter multiplizieren wollen. Aber in dem, was ich gepostet habe, habe ich versucht, nur 92 zu multiplizieren * alleNumSteps.numStepMelk.value Ich denke, den Weg zu tun, was ich eigentlich will, muss ich eine doppelte Schleife in der Funktion verwenden oder? – elektroluse

+0

ok, vielleicht versuchen: für (i: int = 0; i 3vilguy

+0

Ja, ich versuchte es, aber es hat nicht funktioniert, versuchte herauszufinden, warum aber habe es nicht verstanden. – elektroluse