簡體   English   中英

如何從SWIFT中的字典中獲取價值

[英]how to get value from a dictionary in SWIFT

我有數組,其結構是:

var data = [["name" : "Piter", "pubDate" = "01"], ["name" : "Tomas", "pubDate" : "02"], ["name" : "Troy", "pubDate" : "03"]]

var newData = [[String:String]]?

現在我想檢查是否存在“ pubDate” = 01,如果是,我想將此行(該行的所有數據)添加到新表中。 我做這樣的事情:

for _ in data{

  if data[indexPath.item]["pubDate"] == "01"{

    newData!.append(data[indexPath.item])

    }

}

但是我的代碼不起作用。 您有什么想法,如何找到所需的值並將整行添加到新數組中?

您可以使用filter方法輕松地做到這一點:

let newData = data.filter { $0["pubDate"] == "01" }

無需循環,簡單的單線。

您的代碼中有一個錯字:

["name" : "Piter", "pubDate" = "01"]

它應該是:

["name" : "Piter", "pubDate" : "01"]

我在這里有一個可行的解決方案:

        let data = [["name" : "Piter", "pubDate" : "01"], ["name" : "Tomas", "pubDate" : "02"], ["name" : "Troy", "pubDate" : "03"]]

        var newData = [[String:String]]()

        for dictionary in data {
            if dictionary["pubDate"] == "01" {
                newData.append(dictionary)
            }
        }

        print(newData);

您可以像這樣枚舉字典數組

let dataArray:Array<Dictionary<String,String>>  = [["name" : "Piter", "pubDate" : "01"], ["name" : "Tomas", "pubDate" : "02"], ["name" : "Troy", "pubDate" : "03"]]

    var newData = [String:String]()

    for dict in dataArray{

        for (key,value) in dict{

            if value == "01"{

                newData[key] = value
                print(newData)
            }

        }

    }

希望能解決您的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM