如何通过与另一个数组比较来从一个数组中删除共同元素

3
我有一个类
class CardImage {
var imageName: String?
var image : UIImage?
var is_saved = false
}

我有两个数组

var imagesToBeDeleted = [String]()
var cardImages = [CardImage]()

我希望能够从cardImages中删除具有与imagesToBeDeleted相似的imageName属性元素。

额外说明:从这两个数组的名称可以推断出,imagesToBeDeleted将是cardImages数组的imageName属性的子集。


请查看 https://stackoverflow.com/questions/39339431/how-do-i-filter-an-array-based-on-objects-property-with-multiple-or-statements,这个问题非常相似。您只需要否定条件即可。 - Martin R
3
为什么你不喜欢<set>? - Jack
这个链接解决了我的问题。谢谢 - N4SK
1个回答

5

你只需要在 cardImages 上使用 filter,检查当前卡片的名称是否存在于 imagesToBeDeleted 数组中,并只保留不在另一个数组中的 cardImages 元素。

cardImages = cardImages.filter{!imagesToBeDeleted.contains($0.imageName)}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接