On 7/27/06, Steven Sacks | BLITZ <[EMAIL PROTECTED]> wrote:
Here are the methods that use push, btw:

compact
deleteAll
deleteIf
filter
indexes
map
uniq

Below.

Is there something like a test yet so I can make sure I didn't
accidentally introduced some errors?

Mark





function compact() {
        var i = -1;
        var n = this.length;
        var r = [];
        var index = 0;
        for (var a = 0; a < n; a++) {
                var e = this[a];
                if (e !== null && e !== undefined) {
                        r[ index++ ] = e;
                }
        }
};

function deleteAll(obj) {
        var n = this.length;
        var r = [];
        var index = 0;
        if (!(obj instanceof Array)) {
                for (var a = 0; a < n; a++) {
                        var e = this[a];
                        if (e == obj) r[ index++ ] = e;
                }
        } else {
                for (var a = 0; a < n; a++) {
                        var e = this[a];
                        if (!e.eql(obj)) r[ index++ ] = e;
                }               
        }
        this.replicate(r);
};

function deleteIf(block) {
        var r = [];
        var n = this.length;
        var index = 0;
        for (var a = 0; a < n; a++) {
                var e = this[a];
                if (!block(e)) {
                        r[ index++ ] = e;
                }
        }
        this.replicate(r);
};


function filter(block) {
        var r = [];
        var n = this.length;
        var index = 0;
        for (var a = 0; a < n; a++) {
                var e = this[a];
                if (block(e)) r[ index++ ] = e;
        }
        return r;
};

function indexes() {
        var r = [];
        var l = arguments.length;
        var n = this.length;
        var index = 0;
        for (var a = 0; a < l; a++) {
                var e = arguments[a];
                if (e > -1 && e < n) {
                        r[ index++ ] = this[e];
                } else {
                        r[ index++ ] = undefined;
                }
        }
        return r;
};

function map(block) {
        var r = [];
        var n = this.length;
        var index = 0;
        for (var a = 0; a < n; a++) {
                r[ index++ ] = block(this[a]);
        }
        return r;
};

function uniq() {
        var r = [];
        var l = this.length;
        var index = 0;
        for (var a = 0; a < l; a++) {
                var e = this[a];
                if (!r.has(e)) r[ index++ ] = e;
        }
        return r;
};

<<<
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to