How to do equivalent of LINQ SelectMany() just in javascript

后端 未结 9 1447
隐瞒了意图╮
隐瞒了意图╮ 2020-12-13 16:54

Unfortunately, I don\'t have JQuery or Underscore, just pure javascript (IE9 compatible).

I\'m wanting the equivalent of SelectMany() from LINQ functionality.

<
9条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-13 17:18

    As a simpler option Array.prototype.flatMap() or Array.prototype.flat()

    const data = [
    {id: 1, name: 'Dummy Data1', details: [{id: 1, name: 'Dummy Data1 Details'}, {id: 1, name: 'Dummy Data1 Details2'}]},
    {id: 1, name: 'Dummy Data2', details: [{id: 2, name: 'Dummy Data2 Details'}, {id: 1, name: 'Dummy Data2 Details2'}]},
    {id: 1, name: 'Dummy Data3', details: [{id: 3, name: 'Dummy Data3 Details'}, {id: 1, name: 'Dummy Data3 Details2'}]},
    ]
    
    const result = data.flatMap(a => a.details); // or data.map(a => a.details).flat(1);
    console.log(result)

提交回复
热议问题