映射嵌套对象
Posted
技术标签:
【中文标题】映射嵌套对象【英文标题】:mapping nested Objects 【发布时间】:2020-09-27 01:31:54 【问题描述】:大家好
我有以下对象:
series:
Serie1:
subseries1:
a:a1,
b:b2,
,
subseries2:
a:a1,
b:b2,,
,
Serie2:
subseries1:
a:a1,
b:b2,
我想映射这个对象,所以我会得到一个类似
的数组[subseries1, subseries2,subseries1]
我正在使用这张地图:
Object.keys(series).map(k => Object.keys(series[k]).map(key => k[key])
但是,这根本不是我打算做的。有什么建议吗?
【问题讨论】:
提示:循环Series<i>
并将处理后的值推送到数组中。将当前迭代的输出与前一个迭代相连接。那应该解决它
你能先纠正series
中的语法吗? Serie1
似乎是一个数组,但你让它看起来像一个对象
【参考方案1】:
使用Object.values解开第一级SerieN值
使用flatMap 合并和映射子系列
使用Object.entries 提取[[key,value]...]
并映射到单个对象
data =
series:
Serie1:
subseries1:
a: 'a1',
b: 'b2',
,
subseries2:
a: 'a1',
b: 'b2',
,
,
Serie2:
subseries1:
a: 'a1',
b: 'b2',
console.log(
Object.values(data.series).flatMap(x=>Object.entries(x).map(([k,v])=>([k]:v)))
)
【讨论】:
以上是关于映射嵌套对象的主要内容,如果未能解决你的问题,请参考以下文章
如何将具有嵌套对象的复杂 json 文件映射到 java 对象?