Swift:是否有一种“优雅”的方式来过滤字典值(它是一个数组)?

Ano*_*ude 1 arrays dictionary filter swift

这是这个简单的例子:

let i: [String: [Int]] = ["a": [1, 3, 6, 10], 
                          "b": [3, 4, 8, 12]]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新字典,过滤数组以只获取小于 7 的值。我写了这个:

var j: [String: [Int]] {
    var result = [String: [Int]]()
    i.forEach { key, value in
        result[key] = value.filter({ $0 < 7 })
    }
    return result
}
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有更简单,更优雅的方法来做到这一点?

感谢您的帮助!

Joa*_*son 5

您可以使用mapValues然后filter用于实际值

let output = i.mapValues { $0.filter { value in value < 7 } }
Run Code Online (Sandbox Code Playgroud)