Estoy obteniendo API en mi servidor Express que tiene varios pares de valores clave JSON en una matriz. Por ejemplo:
[{ "quality": "best", "url": "https://someurlhere.example/?someparameters" }, { "quality": "medium", "url": "https://someurlhere1.example/?someparameters" }]Y quiero crear una matriz de JSON de los datos recibidos en este formato:
[{ "best": "https://someurlhere.example/?someparameters" }, { "medium": "https://someurlhere1.example/?someparameters" }]He intentado hacer esto usando for loop
for(let i=0; i < formats.length; i++){ arr.push({ `${formats[i].quality}` : `${formats[i].url}` }) }Pero no funcionó para mí.
Por favor, ayúdame a lograr esto. Gracias de antemano :)
Puede usar la función de map y crear un nuevo objeto a partir de ella.
Por ejemplo:
let prevArr = [{ "quality": "best", "url": "https://someurlhere.example/?someparameters" }, { "quality": "medium", "url": "https://someurlhere1.example/?someparameters" }]; // Replace with your array let newArr = []; let obj = {}; prevArr.map(function(x) { obj = {}; obj[x["quality"]] = x.url; newArr.push(obj); });const input = [{ "quality": "best", "url": "https://someurlhere.example/?someparameters" }, { "quality": "medium", "url": "https://someurlhere1.example/?someparameters" }]; const result = input.map((v, i) => { return { [v["quality"]]: v["url"] } }); console.log(result)