【问题标题】:Getting keys of multidimensional array (of `[String: [String: String]]`)获取多维数组的键(`[String: [String: String]]`)
【发布时间】:2016-06-07 05:22:32
【问题描述】:

我有一个结构为[String: [String: String]] 的多维数组。我可以通过 for 循环访问 [String: String] 位,但我不知道如何访问主键(此位 [String: [)。

let items = snapshot.value as! [String: [String: String]]

for item in items.values {
    if let from = item["from"] {
         self.users.append(from)   // this works
    }
}

我怎样才能得到这个节点的主ID?

节点如下所示:

- table
     - "1"
        - "from": "AA"
        - "to": "BB"
     - "2"
        - "from": "AA"
        - "to": "BB"

我正在尝试获取var array = ["1", "2", "3"]

【问题讨论】:

    标签: ios arrays swift multidimensional-array


    【解决方案1】:

    使用元组会很清楚试试这个:

    let dict = ["1":["from":"aa","to":"bb"],"2":["from":"AA","to":"BB"]]
    
    var array = [String]()
    for (_ ,value) in dict{
        if let v = value["from"] {
            array.append(v)
        }
    }
    print(array)
    

    更新:

    let keys = dict.keys.flatMap({$0})
    
    print(keys)
    

    【讨论】:

    • 我正在尝试将数组设置为array = ["1","2"] 等。“来自”位工作正常。你有什么建议吗?
    【解决方案2】:

    对于这样的数组,您有键->值对,您可以将键值作为元素 .0 访问,将值作为元素 .1 访问

    在操场上试试这个,看看它会不会飞:

    for firstLevel in tableArray {
        print(firstLevel.0)
        for innerLevel in firstLevel.1 {
            print(innerLevel.0)
            print(innerLevel.1)
        }
        print("\n")
    }
    

    【讨论】:

    • 这也有效,但其他答案更正确。谢谢
    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    相关资源
    最近更新 更多