Array Re-Indexing in JavaScript funktioniert nicht mit den Standard-Methoden eines Array Objects.
var arr = new Array(); arr[0] = "Hund"; arr[5] = "Katze"; arr[8] = "Maus"; // Do something like this ?!?! alert(arr[0]); alert(arr[1]); alert(arr[2]);
Die jQuery Variante, falls jQuery bereits im Projekt geladen ist:
arr = $.map(arr, function(o) { return o; });
Sollte kein jQuery zur Verfügung stehen, bleibt immer noch die Möglichkeit sich eine Funktion zu schreiben, welche man aber aufgrund der “Power von JavaScript” auch als Prototyp implementieren kann:
Array.prototype.reindex = function() { var tmpArr = [], tmp; while (this.length != 0) { tmp = this.pop(); if (typeof tmp !== "undefined") tmpArr.push(tmp); } for (var i = 0; i < tmpArr.length; i++) this.push(tmpArr[i]); };
Dank des Prototypings können wir alle Array Objekte zur Laufzeit manipulieren und eine weitere Methode “reindex” hinzufügen. Die Verwendung ist anschließend denkbar einfach:
var arr = new Array(); arr[0] = "Hund"; arr[5] = "Katze"; arr[8] = "Maus"; arr.reindex(); // Do something like this! alert(arr[0]); alert(arr[1]); alert(arr[2]);
0 Comments