Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 比较swift中的两个数组,并删除不包含';不匹配_Ios_Swift - Fatal编程技术网

Ios 比较swift中的两个数组,并删除不包含';不匹配

Ios 比较swift中的两个数组,并删除不包含';不匹配,ios,swift,Ios,Swift,我有两个阵列: var packages = [SAPackage]() var inappProducts = [SKProduct]() packages数组中的SAPackage对象有一个名为sku的字符串变量。inappProducts数组中的SKProduct对象有一个名为productIdentifier的字符串变量。我要做的是删除packages数组中没有sku字符串与inappProducts数组中的任何对象productIdentifier字符串匹配的任何对象。这有什么办法吗

我有两个阵列:

var packages = [SAPackage]()
var inappProducts = [SKProduct]()

packages数组中的SAPackage对象有一个名为sku的字符串变量。inappProducts数组中的SKProduct对象有一个名为productIdentifier的字符串变量。我要做的是删除packages数组中没有sku字符串与inappProducts数组中的任何对象productIdentifier字符串匹配的任何对象。这有什么办法吗?考虑过使用集合来查找交点,但我无法检查单个对象字段,而只能检查整个对象。任何关于这方面的建议都将不胜感激

您可以使用此代码过滤那些“sku”存在于inappProducts、SKProducts、

let filteredPackages = packages.filter { package in
    return inappProducts.contains { product in
        product.productIdentifier == package.sku
    }
}

您可以使用Swift的过滤功能。 这里有一个简单的例子:

let dic1 = ["bear","cat","dog","fish"]
let dic2 = ["horse","cat","dog","bird"]

let f = dic1.filter{dic2.contains($0)}

// ["cat", "dog"]

完美的我试着按照这些思路做一些事情,但没有做对。谢谢