Swift-使用map/reduce/flatmap将数组字典缩减为相同类型的单个数组

Swift-使用map/reduce/flatmap将数组字典缩减为相同类型的单个数组,swift,dictionary,reduce,flatmap,Swift,Dictionary,Reduce,Flatmap,给定这样的输入: let m = ["one": ["1","2","3"], "two":["4","5"] ] 如何使用map/reduce生成如下输出: ["1","2","3","4","5"] 我不是很快,并试图学习它,

给定这样的输入:

let m = ["one": ["1","2","3"],
         "two":["4","5"]
    ]
如何使用map/reduce生成如下输出:

["1","2","3","4","5"]
我不是很快,并试图学习它,但我似乎无法找到一个有效的方法来做这个简单的操作。我的详细方法如下:

var d = [String]()

for (key, value) in m {
    value.forEach { (s) in
        d.append(s)
    }
}
print(d)

我相信这可能是一个1行程序,有人能帮忙吗?

您只需要一个
平面图即可:

let result = dict.flatMap { _, values in values }

您将在这里遇到一个大问题:字典没有排序……但如果这不是您的问题,那么您的一行代码将是
m.values.flatMap{$0}
等价地:
Array(m.values.joined())
谢谢,顺序在我的情况下并不重要。Alexanders的答案正是我想要做的。或者
dict.flatMap{$1}
@MartinR我更喜欢
dict.flatMap(\.value)
Swift就像Perl: