j4nk3y: Array.from(obj)

Beitrag lesen

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