Array.filter

Posted by & filed under javascript.

Mir war es einfach zu langweilig, jedesmal ein .each oder ähnliches auf Arrays machen zu müssen, nur um ein Array zu filtern. Also ab damit in das Array-Objekt!

Object.extend(Array.prototype, {
    filter : function(fn){
        var tmpNew = new Array();
        this.each(function(element){
            if (fn(element)) {
                tmpNew.push(element)
            }
        });
       
        return tmpNew;
    }
});

Jetzt sind Dinge wie

    var myArr = [1,2,3,4,5,6,7,8,9];
    myArr = myArr.filter(function(element){
        return element > 6;
    });
    // myArr = [7,8,9]

Natürlich kann man auch in der function einen Regex-Ausdruck auf das Element anwenden oder ähnliche Filterfunktionen schreiben. Die Funktion muss nur ein true zurückgeben, wenn das Element zu den gesuchten gehören soll!

Leave a Reply