index(of:不出现[[String:Any]]

时间:2018-06-01 11:04:23

标签: arrays swift nsdictionary

要查找let array = ["Amit","Peter", "Jhon"] let i = array.index(of: "Peter") print(i)//gives 1 中元素的索引,我们使用index(of:

[[String:Any]]

现在我使用的array(of dictionary)let arrayKeyPair: [[String:Any]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]

index(of:

不幸的是$("#myChart")[0].getContext("2d");没有填充。为什么?

5 个答案:

答案 0 :(得分:1)

由于AnyindexOf场景背后发生的事情是价值比较而且肯定值类型无法进行比较

 let arrayKeyPair: [[String:Any]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]

更改为

 let arrayKeyPair: [[String:String]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]

答案 1 :(得分:1)

您可以使用

    let arrayKeyPair: [[String:Any]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]
    let index = arrayKeyPair.index(where: {$0["name"] as? String == "Peter"})

答案 2 :(得分:0)

index(of:适用于数组,其中元素符合等同协议。您正在使用Any因此无效。

如果你真的想使用索引(of :) ,请使用[[String:String]],它会有效。

答案 3 :(得分:0)

试试这段代码

let arrayKeyPair: [[String:Any]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]

    let indexOfA = indexOfQuestion(id: "Peter") // 0
            print(indexOfA)

    func indexOfValue(id: String) -> Int {
            return arrayKeyPair.index { (question) -> Bool in
                return question["name"] as? String == id
                } ?? NSNotFound
        }

答案 4 :(得分:0)

let arrayKeyPair: [[String:Any]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]

let arrayKeyPair: [[String:Any]] = [["name":"Amit"],["name":"Peter"],["name":"Jhon"]]
let index = arrayKeyPair.index(where: {$0["name"] as? String == "Amit"})