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 originalvar paises = new Array();
paises['ur'] = 'Uruguay';
paises['ch'] = 'Chile';
paises['co'] = 'Colombia';
// parecería que añadimos valores al array
var provincias = new Object();
provincias["sf"] = "santa fe";
provincias["bs"] = "buenos aires";
provincias["ch"] = "chaco";
//añadimos propiedades al objeto
window.onload = function(){
console.log(paises.co); //pero en realidad añadimos propiedades al objeto.
console.log(paises.length); // 0
console.log(provincias.length); // undefined
console.log(paises['co']); //colombia
}
Desde ya agradecido, cualquier link es bienvenido