我有两个字典数组 . 我想通过搜索1)整个字典或2)第二个数组中字典中的键值对来迭代第一个数组 .
如果我尝试搜索整个字典,我会收到错误: Cannot find an overload for 'contains' that accepts an argument list of type '(Array<Dictionary<String, String>>, [String : String])'
.
for var i = 0; i < arrayOne.count; i++ {
for item in arrayOne {
if contains(arrayTwo, arrayOne[i]) == nil {
// Do something
}
}
}
如果我尝试在第二个数组中搜索一个键值对,我得到: Cannot subscript a value of type 'Array<Dictionary<String, String>>' with an index of type 'String'
for item in arrayOne {
if contains(arrayTwo, arrayOne["title"]) {
// Do something
}
}
我需要能够在第一个字典数组中搜索第二个字典数组中的某些值 . 我怎样才能做到这一点?
编辑:两个数组都有相同的声明:
var arrayOne : Array<Dictionary<String, String>> = Array()
var arrayTwo : Array<Dictionary<String, String>> = Array()
1 回答
以下作品 . 您可以遍历每个数组的项目,将它们与另一个数组中的项目进行比较:
在两个数组中搜索公共键/值对:
如果您正在搜索特定密钥:
您可以编写自己的
arrayContains
函数来获取所需的类型:然后使用它来查找所需的值:
要在数组中搜索特定的键/值对: