Я загружаю API на свой сервер Express, который имеет несколько пар значений ключа JSON в одном массиве. Например:
[{
"quality": "best",
"url": "https://someurlhere.example/?someparameters"
},
{
"quality": "medium",
"url": "https://someurlhere1.example/?someparameters"
}]
И я хочу создать массив JSON полученных данных в этом формате:
[{
"best": "https://someurlhere.example/?someparameters"
},
{
"medium": "https://someurlhere1.example/?someparameters"
}]
Я пытался сделать это, используя цикл for
for(let i=0; i < formats.length; i++){
arr.push({
`${formats[i].quality}` : `${formats[i].url}`
})
}
Но это не сработало для меня.
Пожалуйста, помогите мне в достижении этого. Заранее спасибо :)
Вы можете использовать функцию map
и создать из нее новый объект.
Например:
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.info(result)
Вы также должны добавить некоторые пояснения к этому.
Он работает так, как я хочу. Спасибо :)