Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 斯威夫特:有一个;“优雅”;如何筛选字典值(即数组)?_Arrays_Swift_Dictionary_Filter - Fatal编程技术网

Arrays 斯威夫特:有一个;“优雅”;如何筛选字典值(即数组)?

Arrays 斯威夫特:有一个;“优雅”;如何筛选字典值(即数组)?,arrays,swift,dictionary,filter,Arrays,Swift,Dictionary,Filter,下面是一个简单的例子: let i: [String: [Int]] = ["a": [1, 3, 6, 10], "b": [3, 4, 8, 12]] 我想创建一个新的字典,过滤数组以便只得到小于7的值。我写道: var j: [String: [Int]] { var result = [String: [Int]]() i.forEach { key, value in

下面是一个简单的例子:

let i: [String: [Int]] = ["a": [1, 3, 6, 10], 
                          "b": [3, 4, 8, 12]]
我想创建一个新的字典,过滤数组以便只得到小于7的值。我写道:

var j: [String: [Int]] {
    var result = [String: [Int]]()
    i.forEach { key, value in
        result[key] = value.filter({ $0 < 7 })
    }
    return result
}
var j:[String:[Int]]{
变量结果=[String:[Int]]()
i、 forEach{key,中的值
结果[key]=value.filter({$0<7})
}
返回结果
}
然而,我想知道,是否有一种更简单、更优雅的方法可以做到这一点


谢谢你的帮助

您可以使用
映射值
,然后对实际值使用
过滤器

let output = i.mapValues { $0.filter { value in value < 7 } }
let output=i.mapValues{$0.filter{value<7}

您可以使用
映射值
,然后使用
过滤器
获取实际值

let output = i.mapValues { $0.filter { value in value < 7 } }
let output=i.mapValues{$0.filter{value<7}

太棒了!我不知道
mapValues
。谢谢!令人惊叹的我不知道
mapValues
。谢谢!