如何检查我的字典数组是否有某些字典?

时间:2017-01-07 12:44:01

标签: arrays swift dictionary

我有两个字典数组,字符串为[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")
        }
    }

但它会在那里引发错误。那么最好的方法是什么?

2 个答案:

答案 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
   }