使用values-arrays将字典映射到另一个带有值数组的字典?

时间:2017-12-22 09:51:00

标签: arrays swift dictionary mapping reduce

我有一个类型[String: [SomeObject]?]的字典,我想将它映射到另一个相同类型的字典,但在某些情况下从内部数组中删除元素。

如何解决这个问题?如果可以仅使用mapfilterreduce等快捷功能,而无需手动迭代和重新创建新词典?

1 个答案:

答案 0 :(得分:3)

假设我们有以下[String:[Int]]:

var dict = ["k1":[-1, -2, 1, 2]]

我们想要重新删除字典,删除数组中的所有负面元素:

dict = dict.mapValues { v in v.filter { $0 > 0} }
print(dict) // ["k1":[1,2]]