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

Swift - Reducing a Dictionary of Arrays to a single array of same type using map/reduce/flatmap

给出这样的输入:

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 班轮,有人可以帮忙吗?

你只需要一个flatMap:

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