Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/08/2007, 15:21
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: borrar un elemento de un array

No trabajo con librerías prefrabricadas, pero en proyectos grandes suelo reutilizar las mismas funciones:

Código PHP:
/* 
   WALK: Sirve para recorrer todas las posiciones del array, y aplicarles una función.
    -funcionaplicada: Se ejecuta la funcion pasándole por argumento la posición del array, y su índice
        si funcionaplicada devuelve true el bucle se para
   WALK siempre devuelve la posición en que ha finalizado el bucle a no ser que termine después de recorrer el Array (caso false).
*/
Array.prototype.walk = function( funcionaplicada ) {
    for(var 
i=0parar=falsei<this.length && !parari++ )
        
parar funcionaplicadathis[i], i);
    return (
this.length==i)? false : (i-1);
}
/*
    BUSCAR: Devuelve el índice donde se encuenta q en Array, y si no existe devuelve -1;
*/
Array.prototype.buscar = function(q) {
    var 
dev this.walk(function(elem) {
        if( 
elem==)
            return 
true;
    } );
    if( 
this[dev]==) return dev;
    else return -
1;
}
/* 
    ELIMINAR: Renombramiento, más legible, más cómodo. 
*/
Array.prototype.eliminar = function(x) {
    
this.splice(x,1);
}
/*
    ELIMINAR CON VALOR: Busca un elemento por su valor y lo elimina.
    true si ha eliminado algo
    false si no ha modificado el array
*/
Array.prototype.eliminarPorValor = function(valor) {
    var 
elIndice this.buscar(valor);
    
this.eliminar(elIndice);

Así podemos hacer las cosas más legibles:
Código PHP:
var miArray = ["perro""casa""coche""avión"];
e("Longitud del array: "+miArray.length+"; Contenido: "+miArray); 
e("Elimino 'coche'");
miArray.eliminarPorValor("coche");
e("Longitud del array: "+miArray.length+"; Contenido: "+miArray); 
Cita:
Iniciado por output
Longitud del array: 4; Contenido: perro,casa,coche,avión
Elimino 'coche'
Longitud del array: 3; Contenido: perro,casa,avión
Y aquí no ha pasado nada


Es complicado, pero es que js no es que tenga tanto "repertorio" como php, tiene 4 cosillas, y mejorarlo es complejo porque depende del navegador del usuario, en última instancia casi de m$, y no suelen apuntar muy bien.




Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.