优化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)
给定以下地图:
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)