【问题标题】:Convert an array of array of objects to array of objects?将对象数组转换为对象数组?
【发布时间】:2021-06-16 06:30:19
【问题描述】:

当前无效输入

boxlist = [
 {
   boxId:'94sdsd65cc9'
   boxSize:'Small'
   boxType:'box'
   items:(2) [Array(12), Array(2)]
 }
]

扩展上述项目数组数组示例:

items : [
  [{id: 1, name: "item1", write: true}],
  [{id: 3, name: "item3", write: true}]
]

预期输出

boxlist = [
 {
   boxId:'94sdsd65cc9'
   boxSize:'Small'
   boxType:'box'
   items:(2) [{.12.}, {.2.}]
 }
]

必需项对象数组示例:

items = [
  {id: 1, name: "item1", write: true},
  {id: 3, name: "item3", write: true}
]

尝试使用

  1. items.flat() ,但是没用,对我的数组没有影响
  2. flatten、flattenDeep、flattenDepth 用于 loadash 但不起作用

【问题讨论】:

  • 在您的current input 示例中,一方面您有items[0]Array(12),但在您的“扩展形式” 中,您有items[0] 作为@ 987654330@,你能帮我解决一下吗?真的是哪一个?
  • "尝试使用 [...] items.flat() ,但没有成功,它对我的​​数组数组没有影响" I cannot reproduce it
  • [ [{a:1}] , [{b:2}] ].flat() 确实变成了[{a:1}, {b:2}],所以您能否更清楚地了解实际情况?

标签: javascript arrays typescript lodash javascript-objects


【解决方案1】:

boxlist.map((list) => {
    list.items = list.items.flat() // flattens the array of array
    return list
})

【讨论】:

  • 这不维护 [ {12 objects}, {2 objects} ] 的结构,而是返回 [ {14 objects} ]
猜你喜欢
  • 2021-05-03
  • 2018-12-04
  • 1970-01-01
  • 2019-10-22
  • 2019-07-29
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多