Ver Mensaje Individual
  #10 (permalink)  
Antiguo 19/01/2009, 14:27
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: variable 'undefined' al recorrer array

Cita:
Iniciado por evoarte Ver Mensaje
pero que colocará un 'undefined' despues de cada iteracción no lo entiendo,
Igual que se saltaba el 0, ese código se salta siempre un elemento.

Haces:
Código javascript:
Ver original
  1. mensajes[mensajes.length + 1]="...";

Por cada validación estás cogiendo la longitud y añadiendo no en ese elemento, sino en ese más uno. length te devuelve la longitud, no el último elemento.

Mejor explicado:
Si tienes un array como:
Código javascript:
Ver original
  1. mensajes = ["a", "b", "c"];
Y haces:
Código javascript:
Ver original
  1. mensajes.length
te devuelve 3, pero los elementos son realmente mensajes[0], mensajes[1] y mensajes[2]. Así que si quieres añadir uno más al final, tienes que hacer:
Código javascript:
Ver original
  1. mensajes[mensajes.length]="d";
(que lo que hace es:
Código javascript:
Ver original
  1. mensajes[3]="d";
)

Porque si haces:
Código javascript:
Ver original
  1. mensajes[mensajes.length + 1]="d";
Entonces lo que estás haciendo es dejar el elemento mensajes[3] sin definir y pasando directamente al mensajes[4]. A la vez siguiente te saltarás el mensajes[5] y escribirás en mensajes[6].


Por eso estás metiendo undefined en cada iteración.