在 Express Js 中使用动态键和值动态创建 JSON

Create JSON dynamically with dynamic keys and values in Express Js

我正在将 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.log(result)