Meine Herren!
Testweise habe ich mal mit dem selfhtml-Mitarbeiter-Beispiel rumgespielt und damit funktionierts
Link?
sowohl mit assoziativer Variante als auch mit echtem numerischem Array.
Assoziative Arrays gibt es in JavaScript nicht. Es ist zwar problemlos möglich einem Array eine benannte Eigenschaft zuzuweisen, aber diese Eigenschaft erfüllt dann nicht die Bedingungen einen Array-Elements. Herkömmliche Array-Methoden, wie indexOf oder forEach ignorieren diese Eigenschaft zum Beispiel.
und dass die length mit 29 angegeben ist, obwohl das Array in der ersten Ebene nur 7 Objekte/Arrays hat.
Die length-Eigenschaft entspricht dem höchsten vergebenen Array-Index + 1. Also gilt zum Beispiel auch:
var myArray = [];
myArray[99] = 'foo';
myArray.length === 100; // true
Auch das testweise Durchlaufen der ersten Ebene mit for (n in array) geschieht nur 7mal.
for-in-Schleifen iterieren über Eigenschaften eines Objekts, die das "enumerable" Flag gesetzt haben, und dabei werden Eigenschaften aus der Prototyp-Kette eingeschlossen. Um über Arrays zu iterieren bietet sich in erster Linie die Methode .forEach() an, oder eine normale for-Schleife.
Irgendwie habe ich aber das Gefühl, dass das Problem mit stringify daher rührt, dass mit dem Array etwas nicht stimmt. Hat jemand eine Idee?
Zeig uns doch mal den Code, mit dem das Array erstellt und befüllt wird.