var recordCollection = { 2548: { albumTitle: 'Slippery When Wet', artist: 'Bon Jovi', tracks: ['Let It Rock', 'You Give Love a Bad Name'] }, 2468: { albumTitle: '1999', artist: 'Prince', tracks: ['1999', 'Little Red Corvette'] } }; console.log(recordCollection[2548])Esto está dando error:
console.log(recordCollection.2548)MDN tiene una gran página sobre Trabajar con objetos que habla directamente de esto (énfasis mío):
El nombre de una propiedad de objeto puede ser cualquier cadena de JavaScript válida o cualquier cosa que se pueda convertir en una cadena, incluida la cadena vacía. Sin embargo, solo se puede acceder a cualquier nombre de propiedad que no sea un identificador de JavaScript válido (por ejemplo, un nombre de propiedad que tenga un espacio o un guión, o que comience con un número) mediante la notación de corchetes. Esta notación también es muy útil cuando los nombres de las propiedades se van a determinar dinámicamente (cuando el nombre de la propiedad no se determina hasta el tiempo de ejecución).
En javascript, los objetos pueden tener claves como cadena. Se convierten en cuerdas con coerción.
var object = { .12e3: 'wut' }; object[.12e3]; // 'wut' object['.12e3']; // undefined object['120']; // 'wut'Si desea utilizar valores numéricos, puede utilizar mapas en lugar de objetos. Lea más sobre mapas aquí: https://www.w3schools.com/js/js_object_maps.asp