2017-12-14 4 views
0

Ich muss zwei Arrays erstellen, Array A und Array B, Array A muss Array B enthalten und umgekehrt. Das Problem ist, dass die Objektleiste nach dem Objekt foo initialisiert wird, daher ist der Wert von foo.arrayA [0] nicht definiert. Gibt es eine Möglichkeit, dies zu tun, ohne den Wert von foo.arrayA [0] dynamisch zu setzen, nachdem alles geladen wurde?Wie kann ich "Array a" initialisieren, das "Array b" enthält, enthält "Array a"

var skra = { 
    arrayX: [foo, bar] 
}; 

var foo = { 
    arrayA: [bar, skra] 
}; 

var bar = { 
    arrayB: [foo, skra] 
}; 
console.log(foo.arrayA[0]); 
console.log(bar.arrayB[0]); 

Ausgang:

undefined 
{arrayA: Array(2)} 
+0

'var a = [], var b = [a]; a.push (b); ' – Dellirium

+0

Ziemlich wichtige Frage: warum? Anders als "ist das etwas, was ich tun kann?" (Was die Antwort "ja" ist), was machst du eigentlich, dass du denkst, dass du das brauchst? –

+0

Ich versuche, Objekte als Möglichkeiten zu verwenden, um Kartendaten für ein "Spiel" zu speichern. Die Objekte werden zwei Arrays haben, eins enthält die Tilemap-Daten und eins enthält die Map, auf die zu wechseln ist, sobald Sie die Grenze erreicht haben einen Bezug zueinander haben. –

Antwort

0
var bar = {}; 
var skra = { 
    arrayX: [foo, bar] 
}; 

var foo = { 
    arrayA: [bar, skra] 
}; 

Object.assign(bar, { 
    arrayB: [foo, skra] 
}); 
console.log(foo.arrayA[0]); 
console.log(bar.arrayB[0]); 

Ich hoffe, das für Sie arbeitet.

Verwandte Themen