优化JS中的一个deep和map函数

Optimize a deep and map function in JS

给定以下地图:

const myMap = new Map([
    [“a”, [{
        files: [{
            name: “f1a”
        }, {
            name: “f2a”
        }]
    }]],
    [“b”, [{
        files: [{
            name: “f1b”
        }, {
            name: “f2b”
        }]
    }]]
]);

我需要得到以下结果:

[{
    "name": "f1a"
}, {
    "name": "f2a"
}, {
    "name": "f1b"
}, {
    "name": "f2b"
}]

我使用以下方法实现了:

[...x.values()].flat().map(x => x.files).flat()

以上如何优化,甚至可以使用lodash我不介意。

我尝试使用 lodash:flattenMapDeep

但没用

您可以使用 Array#[flat, flatMap]:

const myMap = new Map([
  ['a', [{
    files: [{
      name: 'f1a'
    }, {
      name: 'f2a'
    }]
  }]],
  ['b', [{
    files: [{
      name: 'f1b'
    }, {
      name: 'f2b'
    }]
  }]]
])

// Your code.. 
const result1 = [...myMap.values()].flat().map(x => x.files).flat()
console.log('Result1', result1)

// Using Array#[flat, flatMap] (((Fastest)))
const result2 = [...myMap.values()].flat().flatMap(x => x.files)
console.log('Result2', result2)