我有两个字典数组,字符串为[String:String]。 如何检查一个数组是否包含另一个数组的字典。
let firstArray: [[String: String]] = [dict1, dict2, dict3]
let secondArray: [[String: String]] = [dict1, dict2, dict3, dict4, dict5]
我试着用contains()方法
来做这件事 for item in firstArray {
if secondArray.contains(item) {
print("Hello")
}
}
但它会在那里引发错误。那么最好的方法是什么?
答案 0 :(得分:2)
您可以使用contains
的谓词形式来完成此任务:
for item in firstArray {
if secondArray.contains(where: { $0 == item }) {
print("Hello")
}
}
您不能使用其他形式的contains
,因为类型[String : String]
不符合 Equatable 协议。
答案 1 :(得分:0)
这在 Swift 4
中运行良好let dictionary = ["abc":"pqr"]
if !myArray.contains{ $0 == dictionary } {
//append dictionary inside array
myArray.append(dictionary)
}
else {
//dictionary already exist in your myArray
}