我们如何在swift 3中找到并替换数组字典值

时间:2016-12-13 11:35:35

标签: swift3

我的数组有这个字典我想找到并替换字典h 出勤率=""和出勤=" A"并替换为出勤=" P"

我正在使用它:

   checkedArray = [[String : AnyObject]]()
   let index = find(checkedArray) { $0["attendance"] == "P" }

    if let index = index {
        checkedArray[index] = newDictionary
    }
    // Do any additional setup after loading the view.

}
func find<C: CollectionType>(collection: C, predicate: (C.Generator.Element) -> Bool) -> C.Index? {

    for index in collection.startIndex ..< collection.endIndex {
        if predicate(collection[index]) {
            return index
        }
    }
    return nil
}

[
    {"studentID":"12","name":"panky","roll":"","attendance":"P"},
    {"studentID":"14","name":"a","roll":"","attendance":""},
    {"studentID":"4","name":"akshay","roll":"1","attendance":"E"},
    {"studentID":"6","name":"anki","roll":"11","attendance":"P"},
    {"studentID":"1","name":"mohit","roll":"2","attendance":"M"},
    {"studentID":"5","name":"yogi","roll":"22","attendance":"L"},
    {"studentID":"3","name":"Neha","roll":"3","attendance":"A"}
]

1 个答案:

答案 0 :(得分:3)

let dic: [[String : Any]] = [
    ["studentID":"12","name":"panky","roll":"","attendance":"P"],
    ["studentID":"14","name":"a","roll":"","attendance":""],
    ["studentID":"4","name":"akshay","roll":"1","attendance":"E"],
    ["studentID":"6","name":"anki","roll":"11","attendance":"P"],
    ["studentID":"1","name":"mohit","roll":"2","attendance":"M"],
    ["studentID":"5","name":"yogi","roll":"22","attendance":"L"],
    ["studentID":"3","name":"Neha","roll":"3","attendance":"A"]
]

let result : [Any] = dic.map { dictionary in
    var dict = dictionary
    if let attendance = dict["attendance"] as? String, attendance == "" || attendance == "A" {
        dict["attendance"] = "P"
    }
    return dict
}