【问题标题】: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 似乎是一个数组,但你让它看起来像一个对象

标签: javascript reactjs


【解决方案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})))
)

【讨论】:

    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 2017-07-20
    • 2018-03-17
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多