用数组过滤数组

时间:2019-12-19 09:59:45

标签: arrays swift

我正在搜索用户并获取所有用户的响应,但是现在我创建了一个由特定用户组成的群组,我只想显示搜索用户对仅存在于该群组中的用户的响应。

  • 常规搜索返回所有用户
  • 与一些用户分组
  • 在一个组中搜索仅返回该组中的成员

我有这个Array扩展名来检查返回的所有用户的ID是否在数组中是否存在组成员的ID

extension Array where Element: Comparable {
    func containsSameElements(as other: [Element]) -> Bool {
        return self.count == other.count && self.sorted() == other.sorted()
    }
}

搜索到的用户是不同于组成员的对象类型,但是可以提取值

if userIdArray.containsSameElements(as: (self.chatContact?.members.map({$0.userId}))!) {
        let search = entities
        entities.removeAll()
        let members = self.chatContact?.members
        members?.forEach({ (users) in
        let newEntities = search.filter({ $0.entityId() == users.userId})
        entities.append(contentsOf: newEntities)
      })

    }

userIdArray是总搜索用户ID的数组

0 个答案:

没有答案