我该如何转身
{"service":[["A"],["B"]],"cost":[[20],[50]]}
进入
[{service:"A", cost:20},{service:"B", cost:50}]
我什至不知道从哪里开始...
答案 0 :(得分:1)
您可以围绕对象进行变换以获得所需的结果,首先,将.map()
与Object.entries()
一起使用,将对象变换为以下内容:
[
[
{
"service": "A"
},
{
"service": "B"
}
],
[
{
"cost": 20
},
{
"cost": 50
}
]
]
接下来,使用以下命令将这两个内部数组压缩在一起(第一个数组的第一个元素与第二个数组的第一个元素分组,第一个数组的第二个元素与第二个数组的第二个元素分组) Object.assign()
作为分组方法:
const obj = {"service":[["A"],["B"]],"cost":[[20],[50]]};
const [first, ...r] = Object.entries(obj).map(([k,vals]) => vals.map(([v]) => ({[k]: v})));
const zipped = first.map((o, i) => Object.assign(o, ...r.map(arr => arr[i])));
console.log(zipped);