![](/img/trans.png)
[英]How to remove specific key value from array of dictionary from User Defaults swift3
[英]How to update value of a key of all objects from array of dictionary in swift3 without enumeration?
如何在不枚举的情况下更新swift3中字典数组中所有对象的键值?
例如
let tags = [Dict("key1":true, "key2":1),Dict("key1":true,
"key2":2),Dict("key1":false, "key2":3),Dict("key1":true, "key2":1),
Dict("key1": false, "key2":1)]
现在我想更改所有 Dict 对象的值 if "key1":false
。
即我需要这样的输出
tag : [Dict("key1": false, "key2":1),Dict("key1": false,
"key2":2),Dict("key1":false, "key2":3),Dict("key1": false, "key2":1),
Dict("key1": false, "key2":1)]
我可以在没有枚举或迭代的情况下实现这一目标吗? 如何?
您可以使用map
功能:
let tags = [
["key1": true, "key2": 1],
["key1": true, "key2": 2],
["key1": false, "key2": 3],
["key1": true, "key2": 1],
["key1": false, "key2": 1]]
let newTags = tags.map { (dict) -> [String : Any] in
// dict is immutable, so you need a mutable shadow copy:
var dict = dict
dict["key1"] = false
return dict
}
正如 Paulw11 所提到的,这个函数仍在隐式迭代。 在一般情况下,你有,如果你需要更新他们都遍历条目。
根据您的数据,您可以对要使用引用类型更新的值进行建模。 这对于大型已知数据组共享相同状态的大型数据集可能是有益的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.