【问题标题】:Swift - Array Filter not removing objectsSwift - 数组过滤器不删除对象
【发布时间】:2017-05-19 15:13:43
【问题描述】:

我有一个字符串数组,如图所示:

我还有一个对象数组,其中包含:

当我运行以下行时:

let filterNo = self.responseObjs.filter({!formItemIds.contains(String(describing: $0.formItemId))})

我希望filterNo 为空,因为所有formItemIds 都包含在数组中。但是,它不会删除任何项目。我错过了一些基本的东西吗?

【问题讨论】:

    标签: ios arrays swift filter swift3


    【解决方案1】:

    Stringinit 中删除describing,并使用Nil-Coalescing Operator$0.formItemId 来展开可选。

    let filterNo = self.responseObjs.filter({!formItemIds.contains(String($0.formItemId ?? 0))})
    

    您没有得到过滤的数据,因为您的 formItemId 属性是可选的,并且使用 String(describing: $0.formItemId) 会为您提供类似 Optional(98) 的输出

    【讨论】:

    • @Alan 欢迎朋友 :)
    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2018-09-15
    • 2018-04-08
    相关资源
    最近更新 更多