ios - 如何从 Swift 中的两个结构数组中删除公共(public)项

标签 ios swift

在我的应用程序中,我有两个结构数组,我想从其中一个数组中删除常用项。我的结构:

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

我的数组:

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

如果项目存在于 selectedPeople 数组中(按 id 比较),我想从 people 数组中删除这些项目。

我尝试了几种数组过滤和转换为集合的方法,但都没有奏效。我可以在这里做什么?

谢谢!

最佳答案

  • 获取 selectedPeople 中所有 id 的数组

      let selectedPeopleIDs = selectedPeople.map(\.id)
    
  • 过滤掉id不在数组中的项

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

关于ios - 如何从 Swift 中的两个结构数组中删除公共(public)项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39100443/

相关文章:

ios - 如何在 Swift 中初始化 UIView?

ios - 使用 UIIImagePicker 的 CGAffineTransform 缩放 UIImage 并保存到解析 SDK

ios - UITableViewCell 在表格中使用插入单元格时不使用自动布局高度

swift - 如何在swift 4中动态加载tableview

ios - 快速滚动 UIPageViewController 阻止 viewcontroller 更新

javascript - 无法获取 touchstart 事件的属性?

ios - 将 SwiftyJSON 中的元素添加到 Swift 中的 URL 数组

ios - Swift-tvOS 解雇 UIAlertController

android - 视频聊天 IOS/Android Webrtc。谷歌 WebRTC 示例

ios - Swift:如何为进一步的 http 请求记住 cookie