Estoy recorriendo una matriz, obteniendo datos de una API en cada iteración.
Quiero pasar datos de todas las iteraciones del ciclo desde mi servidor express al navegador usando res.json() , por lo que quiero crear un objeto que contenga un objeto de datos para cada llamada a la API, así como alguna otra clave. pares de valores que se crearán dependiendo de lo que se devuelva.
p.ej
en el índice de bucle 0:
artist0: { data: 'data', moreData: 'more-data' }en el índice de bucle 1:
artist1: { data: 'data', moreData: 'more-data' }etc.
Usaría una matriz, pero una de las llamadas (al azar) dará como resultado otro par de valores clave, por ejemplo:
correctAnswer: 'a_url.com'esto será generado por una de las llamadas API anteriores al azar, por lo que no puedo obtenerlo en el otro extremo usando su índice de matriz.
Necesito la clave 'correctAnswer', por lo que también necesito que cada objeto de los datos de la API se identifique según la llamada de la API de la que proviene.
Pregunta corta: ¿Puedo nombrar claves basadas en variables?
Como siempre, su amable ayuda es muy apreciada :-)
Podrías resolver esto al no poner a los artistas directamente en el objeto, así, usando una matriz dentro de un solo atributo del objeto:
{ "artists": [ { "data": "data", "moreData": "more-data" }, { "data": "data", "moreData": "more-data" } ], "correctAnswer": 3 }O, alternativamente, si realmente desea una clave dinámica, puede usar
{ [`artist${artistIndex}`]: {'data': 'data'} }Esto podría ayudarte
"ES6 define 'ComputedPropertyName' como parte de la gramática de los objetos literales, lo que ayuda a usar una variable para una clave. Las claves de objetos se pueden asignar dinámicamente en ES6 colocando una expresión entre corchetes".