【发布时间】:2019-11-24 02:23:47
【问题描述】:
我有一个这样的对象数组:
let list = [
{
'items': [
'item 1',
'item 2'
]
},
{
'items': [
'item 3'
]
}
]
我想像这样从这个对象中展平数组:
['item 1','item 2','item 3']
我应该为这个输出使用哪个 JavaScript 函数?
我已经尝试过使用地图功能:
list.map(i => i.items)
但我得到了这个输出:
[["item 1","item 2"],["item 3"]]
注意:我正在寻找任何现有函数或包含在函数中的答案,因此我可以调用一个函数 - 而不是自己编写循环。
【问题讨论】:
-
使用第 3 方库,例如 underscorejs.org/#reduce
-
list.flatMap(i => i.items) -
“注意:我正在寻找任何现有的函数/函数链(如果可用)以获得预期的输出。我不期待任何循环的结果。”环形。唯一的问题是它是否看起来像一个循环,或者你把它隐藏在像
reduce这样不必要的复杂的东西中。 -
您是否尝试过使用数组结果的 reduce 方法?并使用扩展运算符将每个项目的项目添加到结果中
-
@Rajiv - 使用内置库函数,您至少需要两个循环(Mamun 的回答)或一个过于复杂的类似循环的东西(charlietfl 的)。
标签: javascript arrays typescript