我有一个嵌套对象的动态数组如下:
[
{
"fields": [
{
"field-1": {
"id": "field-1",
"value": "a1"
},
"field-2": {
"id": "field-2",
"value": "a2"
},
"field-3": {
"id": "field-3",
"value": "a3"
}
}
]
},
{
"fields": [
{
"field-1": {
"id": "field-1",
"value": "b1"
},
"field-2": {
"id": "field-2",
"value": "b2"
},
"field-3": {
"id": "field-3",
"value": "b3"
}
}
]
}
]
我想解析/减少这个数组到下面的结构:
[
{
"field-1": "a1",
"field-2": "a2",
"field-3": "a3"
},
{
"field-1": "b1",
"field-2": "b2",
"field-3": "b3"
},
]
虽然我已经有了一种遍历数组并构造新数组的详细方法,但我想知道是否可以使用reduce方法获得结构,因为这样会更快?
4条答案
按热度按时间fcg9iug31#
你可以用reduce来做
yh2wf1be2#
JSON.parse
reviver和JSON.stringify
replacer可用于修改嵌套值:fwzugrvs3#
你可以试试这个代码
lxkprmvk4#
以下是我的版本:
说明
我们首先
flatMap()
给定的数组,因为我们在数组中有数组,得到以下结果:输出:
现在对于上面数组中的每个对象,我只需要改变每个对象中每个键的值。因此,我们需要在前面的输出中调用
map
,并为每个对象使用reduce()
生成我们想要的对象:输出: