¿Por qué usar cadenas como claves de matriz, la consola muestra esa matriz sin estos valores declarados y al iterar por estos valores donde las claves son cadenas no se muestran? , aunque puedo obtener valor de ellos.Cadenas como claves de matriz en javascript
>> var arr = [ 0, 1, 2, 3 ];
undefined
>> arr["something"] = "aught";
"aught"
>> arr
[0, 1, 2, 3]
>> arr["something"]
"aught"
>> for(var i = arr.length; i--; console.log(arr[ i ]));
3
2
1
0
entiendo que las matrices son objetos que hayan aplicado algún tipo de interfaz 'enumeración' en el motor de Javascript. Lo más interesante es que el intérprete no lanza ninguna advertencia o error, así que dediqué un tiempo a buscar dónde se podrían perder los datos. I ahora, estaba equivocado y yo solía []
en lugar de {}
@abuduba, porque no hay nada incorrecto :-) Tu código es perfectamente válido javascript. Es ambiguo para el lector ya que está mezclando los 2 tipos de matrices, pero es válido. ¿Por qué querrías que el intérprete indicara que algo anda mal cuando no hay nada malo? –
Esto es principalmente un problema de terminología, pero javascript generalmente no llama a '{}' una matriz asociativa. Lo llaman un objeto que tiene propiedades. ¿La mayoría de la gente no está de acuerdo en que lo mejor es no confundir las cosas al llamar a un objeto javascript una matriz asociativa? – jfriend00
Nota: Si intenta usar '' defineProperty'' en la matriz como '' Object.defineProperty.call (arr, 'something', 'unught'); '' arrojará un error. – David