У меня есть этот массив словарей:Swift 3 - расширить массив словаря <String, Any>
var dicts = [["key1": "value1", "key2": "value2"], ["key1": "value3", "key2": "value4"]]
Как мне продлить Array
так, что у меня есть эта функция:
dicts.values(of: "key1") // result: ["value1", "value3"]
я пытаюсь это:
extension Array where Iterator.Element == [String: Any] { // ERROR!
func values(of key: String) -> [Any]? {
var result: [Any]?
for value in self {
let val = value as! Dictionary<String, Any>
for k in val.keys {
if k == key {
if result == nil {
result = [Any]()
}
result?.append(val[k])
break
}
}
}
return result
}
}
Но у меня всегда была ошибка, отмеченная знаком extension Array
ation: error: same-type requirement makes generic parameter 'Element' non-generic
Что мне делать, чтобы исправить это?
Правильно ли итератировать Array
с for value in self
?
Благодаря