首页 > 解决方案 > 如何按值从数组中删除对象?

问题描述

我有一个对象数组。每个对象都有一个 double 值。在使用列表之前,我想从中删除所有值为 0.0 的对象,怎么做?正如您在此示例中看到的,具有 PM10 键的对象的值为 0.0。如果列表发生更改,我想删除此对象以及具有此值的每个条目。

dataEntries =
        [
        FavoriteData(id: 0, key: "NO2", values: [FavoriteValue(date: "", value: 40.0)]),
        FavoriteData(id: 0, key: "PM10", values: [FavoriteValue(date: "", value: 0.0)]),
        FavoriteData(id: 0, key: "PM2.5", values: [FavoriteValue(date: "", value: 55.0)]),
        FavoriteData(id: 0, key: "O3", values: [FavoriteValue(date: "", value: 17.0)]),
        FavoriteData(id: 0, key: "NO2", values: [FavoriteValue(date: "", value: 40.0)]),
        FavoriteData(id: 0, key: "C6H6", values: [FavoriteValue(date: "", value: 10.0)])
        ]

标签: arraysswift

解决方案


removeAll(where:)删除与谓词匹配的Array所有项目

dataEntries.removeAll{ data -> Bool in
    data.values.contains{$0.value == 0.0}
}

推荐阅读