【问题标题】:带有双 [[ ]] 数据的 javascript 数组映射
【发布时间】:2022-01-23 14:56:50
【问题描述】:

我有这个数组:

[ [ { "data1": 1, "data2": 2, }, { "data1": 1, "data2": 2, } ] ]

如何删除第一个括号?我尝试使用 reduce 或 map 但返回错误:

无法读取未定义的属性(读取“reduce”)或无法读取未定义的属性(读取“映射”)。

我必须检索其中的一些数据。

感谢您的帮助。

【问题讨论】:

标签: javascript arrays typescript


【解决方案1】:

如果您的数据在数组arr 中,有几种方法:

  1. 只需 arr[0].map(...)(如果您的数据与示例中的数据类似)
  2. 使用flatMap。如果有嵌套像[ [ obj1, obj2 ], [ obj3, obj4 ] ] flatMap 把它变成[obj1, obj2, obj3, obj4]

例子:

arr.flatMap(_ => _)

编辑:正如其他人所提到的,flat 也同样有效。这取决于您是否还想在 flatMap 中执行一些操作,或者只获取示例中对象的 data1 属性的数组:

arr.flatMap(el => el["data1"]) 

【讨论】:

    【解决方案2】:

    你可以在这里使用 array.flat()

    let x =[ [ { "data1": 1, "data2": 2, }, { "data1": 1, "data2": 2, } ] ]
    
    let y = x.flat()
    
    console.log(y) // [ { data1: 1, data2: 2 }, { data1: 1, data2: 2 } ]
    

    【讨论】:

      猜你喜欢
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多