Foros del Web » Programando para Internet » Javascript »

Eliminar Elemento de Array

Estas en el tema de Eliminar Elemento de Array en el foro de Javascript en Foros del Web. Hola a todos, Me gustaría preguntaos una cosa relacionada con arrays: Pongamos por ejemplo que tengo: array[0] = "holaClave" array[1] = "hola" array[2] = "adios" ...
  #1 (permalink)  
Antiguo 04/05/2010, 07:23
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Eliminar Elemento de Array

Hola a todos,

Me gustaría preguntaos una cosa relacionada con arrays:

Pongamos por ejemplo que tengo:

array[0] = "holaClave"
array[1] = "hola"
array[2] = "adios"

Me gustaría borrar el elemento del array que contenga "Clave".

Para ello he leído que lo mejor es crearte tu propia función "grep" para obtener el elemento que contenga dicho substring.
Con ese elemento, encontrar en qué posición se encuentra, con la función "IndexOf" para luego eliminarlo con "Splice".

Hay alguna manera mas fácil de eliminar un elemento de un array que contenga un substring dado?

Muchas gracias.
  #2 (permalink)  
Antiguo 04/05/2010, 10:38
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Eliminar Elemento de Array

lo que tu requieres es lo mismo que un filtro para array. te comparto una funcion que hace tiempo habia escrito.
Código:
Array.prototype = {
filter: function(callback){
for(var i = 0; i < this.length; i++) if(!callback(this[i])) this.splice(i--, 1);
return this;
}};

/*
Sinopsis:
array.filter(filter_function);

Ejemplo:
var myArray = [0, 3, 2, 98];
myArray.filter(function(elem){
if(elem < 10)return false;
return true;
});
*/
solo tienes que invocar el metodo filter desde un array, tal como lo muestra la sinopsis. al metodo, tienes que pasarle un filtro que no es otra cosa que una funcion que evalua cada elemento del array y devuelve un boolean segun las condiciones dadas. cuando el filtro devuelve false, significa que no lo quieres en el array. por el contrario, true para retener el elemento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: eliminar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:36.