用数组值过滤字典

时间:2019-05-17 07:32:53

标签: ios arrays filtering

我有一个包含ID的Array

var ID = ["782", "783", "784", "785", "786", "788", "789", "790", "791", "792", "793", "795", "805"]

还有一个字典字典

Var arr2 = [["ID":"782","AmenitiesURL":"xyx.com"],["ID":"783","AmenitiesURL":"xybx.com"],["ID":"784","AmenitiesURL":"xyax.com"]]

Aslo在图片中看到。现在,我想获取ID的网址。

例如如果arr ID = 784然后我想在ID中找到那个arr2并得到他们的url并追加到新数组中,

简而言之,两个数组一个用于ID,另一个用于URL

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以使用以下方法来使其正常工作:

main()

输出:

let urls = ID.compactMap { (id) in
    return arr2.first(where: {$0["ID"] == id})?["AmenitiesURL"]
}

对于print(urls) //["xyx.com", "xybx.com", "xyax.com"] 中的所有ID,您将从ID array中获得AmenitiesURL个值。

答案 1 :(得分:0)

要获取特定ID的URL

let id = "784"
if let dict = arr2.first(where: { $0["ID", default:""] == id }), let urlString = dict["AmenitiesURL"] {
    print(urlString)
}

答案 2 :(得分:0)

另一种方法。虽然这个保留了arr2的结构

let filteredArray = arr2.filter { dict -> Bool in
    for id in ID{
        if dict["ID"] == id{
            return true
        }
    }
    return false
}