JavaScript: Array Re-Indexing with Prototyping

Veröffentlicht von Sascha am

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]);
Kategorien: JavaScript

Kommentar verfassen

%d Bloggern gefällt das:

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter.

Schließen