Tach!
Ich initialisiere ein Javscript Array durch
var data = new Array().
Kann man abkürzen zu var data = [];
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 mittelsconsole.log(data)gibt etwas aus wie[1: Object, 2: Object, ...]. Soweit sogut.
Wenn du Strings wie in 'index' (mit Anführungszeichen) verwendest, erzeugst du Objekteigenschaften und keine Array-Einträge. Ich nehme an, du meinst/nimmst keine Strings sondern Zahlen.
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 mitdata['index'] = JSON.parse(response)andataanhängen. Mitconsole.log(data)erhält man dann etwas wie[1: Object, 2: Object, 3: Array[2]]. Und mitconsole.log(typeof(data['3']))bekommt man[Object].
Unterscheide zwischen einer Zahl als Array-Index und einem String, auch wenn Javascript für dich den String '3' in die Zahl 3 umwandelt.
Nun die große Frage. Warum wird Object ausgegeben?
Es gibt in Javascript keinen Datentyp Array. Arrays sind auch nur Objekte. Prüfen auf ein Array kann man mit Array.isArray(...)
dedlfix.