3 Stimmen

Mehrdimensionales Array von Funktionen

Wie kann ich das schaffen?

q = {}

q[0] = new Array()

q[0].push(function()
{
   console.log("whatup")
})

q[0]() // currently prints "q[0] is not a function"

Natürlich sollte es nicht ausgeführt werden, bis ich es aufrufe. Ich habe versucht, sie innerhalb einer anderen Funktion als Rückgabewert zu verschachteln, aber nichts funktioniert :(

6voto

Jason LeBrun Punkte 12679

Sie haben ein mehrdimensionales Array, aber Sie greifen nur auf die erste Dimension am Ende zu (die ein anderes Array ist). Versuchen Sie q[0][0]() .

3voto

Matt Howell Punkte 15162

Das Problem ist, dass der Wert in q[0] das neue Array() ist, das Sie ihm zugewiesen haben - und nicht eine Funktion.

Diese Zeilen:

q[0].push(function()
{
   console.log("whatup")
})

setzt die Funktion als erstes Element in das neue Array, das Sie in der zweiten Zeile q[0] zugewiesen haben. Also stattdessen:

q[0]() // currently prints "q[0] is not a function"

Sie wollen das wirklich tun:

q[0][0]()

2voto

6502 Punkte 108136

Ihr Code sollte funktionieren, aber Sie rufen das Array auf. Um die Funktion aufzurufen, müssen Sie Folgendes tun

q[0][0]()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X