Salve!
Hab da ne kurze frage zu Javascript.
Ich initialisiere ein Javscript Array durch var data = new Array()
.
Dieses wird nach und nach durch verschiedene AJAX Requests mit eindimensionalen JSON Objekten gefüllt, frei nach dem Motto data['index'] = JSON.parse(response)
. Eine Überprüfung mittels console.log(data)
gibt etwas aus wie [1: Object, 2: Object, ...]
. Soweit sogut.
Im nächsten Schritt bin ich nun dabei ein mehrdimensionales Array aus einer PHP zu holen, auch hier das selbe Spiel mit echo json_encode(myArr)
das Array an die success Function des AJAX request schicken und mit data['index'] = JSON.parse(response)
an data
anhängen. Mit console.log(data)
erhält man dann etwas wie [1: Object, 2: Object, 3: Array[2]]
. Und mit console.log(typeof(data['3']))
bekommt man [Object]
.
Nun möchte ich mit Mustache.js über eben deieses (index 3) eine Schleife laufen lassen mit {{#3}}{{/3}}
. Diese Methode funktioniert anscheinend nur bei Arrays und nicht bei Objekten (nur als Info). Darum wunderte ich mich warum es nicht bei data['3']
funktioniert, was laut Konsole ein Array/Objekt sein soll.
Also kurzerhand in die Reference geschaut und Array.from()
gefunden. Dies dann fix mit console.log(typeof(Array.from(data['3'])))
überprüft und es wird Object ausgegeben.
Nun die große Frage. Warum wird Object ausgegeben?
Gruß
Jo