在索引处更改数组swift中的值

时间:2015-04-24 01:32:40

标签: swift

我是一名刚接触swift的高中生,我似乎无法在索引中更改布尔值,这是我的变量

var value = [[String:Bool]]()
value.append(["Club 1" : true]) 

无论我追加多少个值,我希望能够将值更改为false

我发现你可以像

那样引用它们
value[0].values.first! 

但我希望能够改变它

提前致谢

2 个答案:

答案 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;。

enter image description here

以下是使用高阶filter函数的相同函数的更简洁版本。

func findIndexOfDictionary(inArray array: [[String: Bool]], withKey key: String) -> Int? {
    return (filter(0..<array.count){array[$0][key] != nil}).first
}