如何将对象数组分组到新数组中?

som*_*one 3 javascript

我有以下数组


    const arr = [
      {
       Images: [{ id: 1 }, { id: 2 }, { id: 3 }],
       MediaCategoryName: "Exterior",
       id: 51
      },

       {
       Images: [{ id: 7 }, { id: 8 }, { id: 9 }],
       MediaCategoryName: "Construction",
       id: 687
      },

      {
      Images: [{ id: 10 }, { id: 11 }, { id: 21 }],
      MediaCategoryName: "home",
      id: 755
     }
    ];
Run Code Online (Sandbox Code Playgroud)

我如何从它们创建新数组并仅放置Images

我需要这样的东西

newArr = [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 7 }, { id: 8 }
         , { id: 9 }, { id: 10 }, { id: 11 }, { id: 21 }
         ]
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我实现这一目标吗?

谢谢 :)

cmg*_*ess 7

使用Array.prototype.flatMap()
就像做一个 map 返回图像,然后再执行一个 flat

const arr = 
  [ { Images: [{ id:  1}, {id:  2}, {id:  3 }] , MediaCategoryName: 'Exterior',     id:  51 } 
  , { Images: [{ id:  7}, {id:  8}, {id:  9 }] , MediaCategoryName: 'Construction', id: 687 } 
  , { Images: [{ id: 10}, {id: 11}, {id: 21 }] , MediaCategoryName: 'home',         id: 755 } 
  ];


const res = arr.flatMap(({Images}) => Images)

console.log(JSON.stringify(res))
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper {max-height: 100% !important;top: 0;}
.as-console-row::after {display: none !important;}
Run Code Online (Sandbox Code Playgroud)