【问题标题】:Removing array object according to its property in Swift根据 Swift 中的属性删除数组对象
【发布时间】:2020-09-20 18:47:24
【问题描述】:

我有一个这样的自定义数组,我想删除学生 id 为 4 的元素

var strNames = [Student(id: 1, name: "ghj"), Student(id: 4, name: "def"), Student(id: 9, name: "bkl")]

以经典的方式,我喜欢这样。有人可以帮我用 Swift 方式映射吗?

 var sArray2: [Student] = []
    for item in strNames {
        if item.id != 4 {
            sArray2.append(Student(id: item.id, name: item.name))
        }
    }
strNames = sArray2

【问题讨论】:

    标签: ios arrays swift


    【解决方案1】:

    你可以使用RangeReplaceableCollection变异方法:

    mutating func removeAll(where shouldBeRemoved: (Element) throws -> Bool) rethrows
    

    在你的情况下:

    strNames.removeAll { $0.id == 4 }
    

    【讨论】:

      【解决方案2】:

      您也可以使用过滤器函数根据条件过滤掉,但过滤器函数返回一个包含过滤值的新数组

      var filteredArray = strNames.filter { (eachVal) -> Bool in eachVal.id != 4 }

      【讨论】:

        猜你喜欢
        • 2013-02-23
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 2015-12-07
        • 2016-11-08
        • 2012-05-17
        相关资源
        最近更新 更多