要查找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");
没有填充。为什么?
答案 0 :(得分:1)
由于Any
因indexOf
场景背后发生的事情是价值比较而且肯定值类型无法进行比较
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"})