是否可以在使用一个等值对象字段的对象数组上使用包含? [复制]

Posted

技术标签:

【中文标题】是否可以在使用一个等值对象字段的对象数组上使用包含? [复制]【英文标题】:Is it possible to use Contains on an array of objects using one equatable object field? [duplicate] 【发布时间】:2020-10-29 09:13:49 【问题描述】:

以下面的对象为例,是否可以使用数组“.contains”方法仅根据“number”字段检查该对象的数组是否包含特定的数字?

struct AvailableDay 
    
    var someField : someObject
    var number : Int
  

数组:

var availableDay : [AvailableDay]


availableDay.contains(...) /*Just to absolutely clarify what I meant by "contains".*/

【问题讨论】:

【参考方案1】:

使用contains(where:

availableDay.contains(where:  $0.number == yourDesiredNumber)

或者,您可以通过 override 公平一致性来仅检查 number 属性,如下所示:

extension AvailableDay: Equatable 
    static func == (lhs: AvailableDay, rhs: AvailableDay) -> Bool  lhs.number == rhs.number 

【讨论】:

以上是关于是否可以在使用一个等值对象字段的对象数组上使用包含? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在数组控制器上使用谓词过滤相关对象

在 JavaScript 中聚合对象数组

类是否包含对其字段对象的引用?

如何在CloudFirestore中更改数组中的对象? [重复]

如何设置映射输入的嵌套 JSON 数组对象的状态

java 返回数组对象怎么返回