Seleccionar página

Extendiendo el objeto Array

por | May 30, 2008 | General

Una de las mejores características de javascript es que se pueden añadir funciones a las ‘clases’ en cualquier momento a través de la propiedad prototype.
Aprovechando esta capacidad podemos extender el objeto Array para añadirle funcionalidades de búsqueda y eliminación.

array.indexOf
Devuelve el indice del array en el que se encuentra el elemento. Devuelve -1 si no encuentra el elemento

Array.prototype.indexOf = function(element) {
for (var i = 0; i <this.length; i++) {
if(this[i] == element) return i;
}
return -1;
};


array.exists

Devuelve true si el elemento se encuentra en el array, haciendo uso de la función indexOf

Array.prototype.exists = function(element) {
return this.indoexOf(element) != -1;
};

array.filter
Devuelve un array que contiene solo los elementos para los que la función pasada como argumento devuelve true

Array.prototype.filter = function(fn) {
var array = [];
for (var i = 0; i <this.length; i++) if(fn(this[i])) array.push(this[i]);
return array;
};

array.removeIndex
Elimina todos los elementos del array que están entre los índices from y to. Si solo se especifica valor para from, se elimina solo el elemento que se encuentra en ese índice.

Array.prototype.removeIndex = function(from, to) {
if (from <0) return;
var rest = this.slice((to || from) + 1 || this.length);
this.length = from <0 ? this.length + from : from;
return this.push.apply(this, rest);
};

array.remove
Elimina un elemento del array, usando las funciones removeIndex e indexOf

Array.prototype.remove = function(e) {
return this.removeIndex(this.indexOf(e));
};

array.execute
Ejecuta la función fn pasándole como argumento cada elemento del array
si le pasamos el argument obj, se ejecutara la función fn como si perteneciese al objeto obj

Array.prototype.execute = function(fn, owner) {
for (var i=0; i<;this.length; i++){
if (owner) fn.call(owner, this[i]);
else if (typeof this[i] != ‘function’) fn(this[i]);
}
}

array.foreach
Ejecuta la función fn en cada elemento del array, pasándole como argumentos los elementos contenidos en el array args
si le pasamos el argument obj, se ejecutara la función fn como si perteneciese al objeto obj

Array.prototype.foreach = function(fn, args) {
for (var i=0; i<this.length; i++) {
fn.apply(this[i], args);
}
}

Te puede interesar…

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *