我有两个字典。
[
["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
.
如何过滤这两个词典?我试过过滤方法,但它给出了很多错误。我不认为 for loop 是这种过滤的好主意。谁能帮我?这两个是类型:Array<Dictionary<String, Any>>
.
编辑:我尝试过的。
self.filteredArr = arr1?.filter{ $0["productId"] as! String == arr2![0]["sku"] as! String}
但是,它会抛出多个错误,我不知道这是否是正确的过滤方式。
最佳答案
试试这个
let filteredArray = array2.filter { dic2 in
array1.contains(where: { dic1 in
dic1["sku"] as! String == dic2["productId"] as! String
})
}
关于arrays - 如何使用多个键 Swift 4 过滤两个字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52531194/