Foros del Web » Programando para Internet » Javascript »

Problema con split y longitud de array

Estas en el tema de Problema con split y longitud de array en el foro de Javascript en Foros del Web. Hola a todos! Paso a explicar mi problema: Tengo una variable de tipo string donde guardo una cadena con muchos nombres separados por '/', para ...
  #1 (permalink)  
Antiguo 22/04/2010, 01:39
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Problema con split y longitud de array

Hola a todos!
Paso a explicar mi problema:
Tengo una variable de tipo string donde guardo una cadena con muchos nombres separados por '/', para luego separarla con split y guardarlo en un array. Mi problema viene cuando intento recorrer dicho array, hago un alert para ver la longitud del array y nunca me da el valor correcto, sino siempre mayor (Conozco el número de nombres y no coincide). Aquí os muestro mi código:
Código:
            var strResultado;
            var arrayElementos=new Array();
            arrayElementos=strResultado.split('/');
            function mostrarElementos()
            {
                alert(strResultado);//Para ver los nombres que hay
                alert(arrayElementos.length);
                for(i=0;i<arrayElementos.length;i++)
                {
                     (código)
                }
            }
No sé si el fallo está en el split, o por que hay algún problema con la cadena.
Si alguien sabe cómo solucionarlo o tiene una ligera idea de porqué puede ser, agradecería mucho la ayuda.
Un saludo.
  #2 (permalink)  
Antiguo 22/04/2010, 02:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Problema con split y longitud de array

Quizás tu cadena tenga un contenido así:

nombre1/nombre2/nombre3/

Split detecta que más allá de la última barra también es un contenido, por lo que la longitud será 4.

En tu código pon arrayElementos.length - 1, quedando:

Código Javascript:
Ver original
  1. var strResultado;
  2.             var arrayElementos=new Array();
  3.             arrayElementos=strResultado.split('/');
  4.             function mostrarElementos()
  5.             {
  6.                 alert(strResultado);//Para ver los nombres que hay
  7.                 alert(arrayElementos.length -1);
  8.                 for(i=0;i<arrayElementos.length-1;i++)
  9.                 {
  10.                      (c&#243;digo)
  11.                 }
  12.             }
  #3 (permalink)  
Antiguo 22/04/2010, 02:41
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con split y longitud de array

No, ya había pensado en eso y había quitado los paréntesis inicial y final.
La longitud de la cadena es a veces el doble de lo que debería ser y otras veces mucho más (p.e.: Hay 20 nombres y la longitud me dice 400)
Gracias de todas formas, :)
  #4 (permalink)  
Antiguo 22/04/2010, 03:10
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con split y longitud de array

El código se supone que es correcto, no?
Entonces el problema puede venir de que la cadena esté mal? Quizás no contiene lo que yo creo...
  #5 (permalink)  
Antiguo 22/04/2010, 03:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Problema con split y longitud de array

Haz un alert(strResultado); antes de hacer el split para ver que es lo que hay realmente dentro de ese String
  #6 (permalink)  
Antiguo 22/04/2010, 03:50
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con split y longitud de array

He ahí el problema: había hecho un alert para ver lo que contenía la cadena antes del split y estaba bien, pero no me había dado cuenta de que la cadena se modificaba en una sentencia posterior a este alert y anterior al split.
He modificado esa parte del código y todo solucionado.
Gracias, un saludo.

Etiquetas: longitud, split
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 01:10.