Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/05/2012, 16:05
Avatar de cristian_cena
cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: No entiendo como funciona este bucle en javascript. ¿alguien puede explica

Cita:
- @aijoona: En JavaScript no existen los arrays asociativos ...
- @marlanga: ... bueno, en javascript, si nos ponemos finos, TODO son objetos ...
- @aijoona: ...un Array es un Object, pero no al revés...
Los muchos, que como yo, intentamos aprender javascript a fuerza de tutorial y precisamente con la guía de librosweb.es nos habremos encontrado con que definen a los objetos como arrays asociativos, cita textual:
"Técnicamente, un objeto de JavaScript es un array asociativo formado por las propiedades y los métodos del objeto. Así, la forma más directa para definir las propiedades y métodos de un objeto es mediante la notación de puntos de los arrays asociativos."

Mi pregunta es:
Si con paises['str'] añadimos propiedades a un objeto y no elementos a un array ¿entonces porque length devuelve 0 o undefined según se trate de un array o de un objeto y en todo caso no devueve undefined para ambos?

Código Javascript:
Ver original
  1. var paises = new Array();
  2. paises['ur'] = 'Uruguay';
  3. paises['ch'] = 'Chile';
  4. paises['co'] = 'Colombia';
  5. // parecería que añadimos valores al array
  6.  
  7. var provincias = new Object();
  8. provincias["sf"] = "santa fe";
  9. provincias["bs"] = "buenos aires";
  10. provincias["ch"] = "chaco";
  11. //añadimos propiedades al objeto
  12.  
  13. window.onload = function(){
  14.     console.log(paises.co);     //pero en realidad añadimos propiedades al objeto.
  15.     console.log(paises.length); // 0
  16.     console.log(provincias.length); // undefined
  17.     console.log(paises['co']);  //colombia
  18. }

Desde ya agradecido, cualquier link es bienvenido