如何映射深层嵌套的对象数组?

Red*_*ron 0 javascript arrays filtering

const my_arr = [
   {id: 1, arr: [{subId: 1, value: 1}],
   {id: 2, arr: [{subId: 2, value: 2}],
   {id: 3, arr: [{subId: 3, value: 1}],
]
Run Code Online (Sandbox Code Playgroud)

如何映射该数组my_arr,然后映射arr以返回一个数组,如下所示:

[
  {subId: 1, value: 1},
  {subId: 3, value: 1},
]
Run Code Online (Sandbox Code Playgroud)

基本上仅过滤掉值为 1 的位置,然后仅返回该子对象

我试过做

my_arr.map((x) => x.map((y) => y.value === 1 ? y : null)) 
Run Code Online (Sandbox Code Playgroud)

Nic*_* Vu 5

您可以尝试使用这种方法flatMapfilter

const my_arr = [
   {id: 1, arr: [{subId: 1, value: 1}]},
   {id: 2, arr: [{subId: 2, value: 2}]},
   {id: 3, arr: [{subId: 3, value: 1}]},
]

const result = my_arr.flatMap(item => item.arr).filter(item => item.value === 1)

console.log(result)
Run Code Online (Sandbox Code Playgroud)