我有两个字典。
[
["price": 65, "sku": abcd],
["price": 130, "sku": efgh],
["price": 195, "sku": ijkl],
["price": 325, "sku": mnop]
]
并且:
[
["productId": abcd, "price": 79],
["productId": wxyz, "price": 79],
["productId": opki,"price": 159],
["productId": efgh, "price": 249],
["productId": ijkl, "price": 249],
["productId": ytui, "price": 299],
["productId": mnop, "price": 399]
]
我要匹配sku
和productId
。
如何过滤这两个词典?我试过了filter方法,但它给出了很多错误。对于这种过滤,我认为for循环不是一个好主意。谁能帮我?这两种类型是:Array<Dictionary<String, Any>>
。
编辑:我尝试过的事情。
self.filteredArr = arr1?.filter{ $0["productId"] as! String == arr2![0]["sku"] as! String}
但是,它引发了多个错误,我不知道这是否是正确的过滤方法。
答案 0 :(得分:1)
尝试一下
let filteredArray = array2.filter { dic2 in
array1.contains(where: { dic1 in
dic1["sku"] as! String == dic2["productId"] as! String
})
}