我无法理解如何在更多" swift"中重写这个表达式。高效的方式:
for result in results {
var isExists = false
for ref in referenceArray {
if result.id == ref.id {
isExists = true
break
}
}
if isExists == false {
filteredResults.append(result)
}
}
我试过了:
filteredResults = results.filter { result in
referenceArray.contains { $0.id != result.id }
}
但它给了我空数组。
感谢。
答案 0 :(得分:1)
如果我错了,请纠正我,但听起来你想做这样的事情:
根据一组商品
B
和一组商品C
,创建一组商品B
,只包含A
和中的商品<{1}}中的。
换句话说,我认为你正在寻找新的&#34; B
中不存在A
中已存在的内容。
如果您正在尝试这样做,可以使用Set
。这是Int
s的一个简单示例,但希望它会有所帮助:
let setA = Set([1,2,3,4,5,6,7,8,9,10])
let setB = Set([2,4,6,8,10,13])
// Only the values that overlap both sets
let evens = setA.intersection(setB) // {6, 10, 2, 4, 8}
// Only the values that do not overlap both sets
let odds = setA.symmetricDifference(setB) // {9, 5, 7, 3, 1, 13}
// All unique elements in both sets
let uniqueToBoth = setA.union(setB) // {13, 10, 2, 4, 9, 5, 6, 7, 3, 1, 8}
// Only elements unique to B
let uniqueToB = setB.subtracting(setA) // {13}