我是一名刚接触swift的高中生,我似乎无法在索引中更改布尔值,这是我的变量
var value = [[String:Bool]]()
value.append(["Club 1" : true])
无论我追加多少个值,我希望能够将值更改为false
。
我发现你可以像
那样引用它们value[0].values.first!
但我希望能够改变它
提前致谢
答案 0 :(得分:2)
value[ 0 ][ "Club 1" ] = false
答案 1 :(得分:0)
我会使用以下功能。
func findIndexOfDictionary(inArray array: [[String: Bool]], #withKey: String) -> Int? {
for index in 0..<array.count {
if array[index][withKey] != nil {
return index
}
}
return nil
}
如果你的任何词典中没有重复的键,这个函数会将索引返回到包含键的字典,如果它不存在则返回nil。
在Playground屏幕截图中,您可以看到现有密钥的返回值&#3; Spades 2&#39;,更改&#39; Club 1&#39;的值,而不是找到密钥&#39 ;心脏1&#39;。
以下是使用高阶filter
函数的相同函数的更简洁版本。
func findIndexOfDictionary(inArray array: [[String: Bool]], withKey key: String) -> Int? {
return (filter(0..<array.count){array[$0][key] != nil}).first
}