Pregunta simple, ¿qué es mejor? Explique en 1-2 oraciones por qué. No he trabajado mucho con archivos JSON, pero creo que en el futuro lo haré con más frecuencia. Por lo tanto, es mejor comenzar con la estructura adecuada, en lugar de trabajar un tiempo y darse cuenta de que otra estructura sería mejor.
"id" como clave:
{ "0": { "name": "name1", "bdate": "bdate1", "mail": "mail1", "sex": "sex1" }, "1": { "name": "name2", "bdate": "bdate2", "mail": "mail2", "sex": "sex2" }, "2": { "name": "name3", "bdate": "bdate3", "mail": "mail3", "sex": "sex3" } }"id" en datos:
[ { "id":"0", "name": "name1", "bdate": "bdate1", "mail": "mail1", "sex": "sex1" }, { "id":"1", "name": "name2", "bdate": "bdate2", "mail": "mail2", "sex": "sex2" }, { "id":"2", "name": "name3", "bdate": "bdate3", "mail": "mail3", "sex": "sex3" } ]El uso de un objeto indexado por ID facilitará la búsqueda de objetos si habrá circunstancias en las que tendrá que encontrar la ID por adelantado. Con eso, usar su primer enfoque le permitirá encontrar el objeto tan fácilmente como:
const personObj = allObjects[id]Si usó una matriz en su lugar, tendría que iterar sobre toda la matriz para encontrarla:
const personObj = allObjects.find( obj => obj.id === id );que es un orden de magnitud más lento (aunque, eso solo es relevante si la cantidad de datos es bastante grande).
Por supuesto, asegúrese de que una ID identifique de forma única un objeto, y solo uno.
Si los ID corresponden exactamente a su posición en la matriz, como en este ejemplo, podría usar la matriz en su lugar y usar allObjects[id] , pero eso podría crear problemas más adelante si los elementos se agregan o eliminan de la matriz.
Si necesita buscar usuarios por ID, entonces tener un mapa sin duda será más rápido. En la mayoría de los casos en los que buscará valores utilizando una clave, un mapa será la opción que ofrezca el mejor rendimiento y la codificación más sencilla.
Si siempre tiene que obtener a todos los usuarios, una lista puede ser más conveniente, pero es fácil convertir un mapa en una lista cuando lo necesita.
La mayoría de los idiomas tienen una sintaxis sencilla que le permitirá crear una lista a partir de un mapa y viceversa. El costo de conversión es muy similar.
No olvide que una lista contiene información adicional, es decir, un pedido que no está disponible en un mapa. Entonces, si el orden es lo más importante, por ejemplo, elementos en una cola o similar, elija usar una lista.