Seleccionar página

Una de las mejores características de javascript es que se pueden añadir funciones a las ‘clases’ en cualquier momento a traves 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;
  }
  return1;
};


array.exists

Devuelve true si el elemento se encuentra en el array, haciendo uso de la funcion 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 pasandole como argumento cada elemento del array
si le pasamos el argument obj, se ejecutara la funcion 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, pasandole como argumentos los elementos contenidos en el array args
si le pasamos el argument obj, se ejecutara la funcion 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);
  }
}