如何在Swift中从两个结构数组中删除常见项目 [英] How to remove common items from two struct arrays in Swift

查看:104
本文介绍了如何在Swift中从两个结构数组中删除常见项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用中,我有两个结构数组,我想从其中一个中删除常见项目.我的结构:

In my app I have two struct arrays and I want to remove common items from one of them. My struct:

struct PeopleSelectItem {
    var name = ""
    var id = ""
    var added = false
}

我的数组:

var people : [PeopleSelectItem] = []
var selectedPeople : [PeopleSelectItem] = []

我想从people数组中删除项目,如果它们存在于selectedPeople数组中(按ID比较).

I want to remove items from people array if they exist (compare by id) on selectedPeople array.

我尝试了几种数组过滤并将其转换为set的方法,但是它们都不起作用.我在这里可以做什么?

I tried several array filtering and converting to set but none of them worked. What can I do here?

谢谢!

推荐答案

  • 获取selectedPeople中所有id的数组

    let selectedPeopleIDs = selectedPeople.map { $0.id }
    

  • 过滤ID不在数组中的项目

  • Filter the items whose id is not in the array

    let filteredPeople = people.filter { !selectedPeopleIDs.contains($0.id) }
    

  • 这篇关于如何在Swift中从两个结构数组中删除常见项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆