arrays - 如何按值从数组中删除对象?
问题描述
我有一个对象数组。每个对象都有一个 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)])
]
解决方案
有removeAll(where:)删除与谓词匹配的Array
所有项目
dataEntries.removeAll{ data -> Bool in
data.values.contains{$0.value == 0.0}
}
推荐阅读
- c - 在 Windows 上使用 Git Bash 运行和编译 c 的问题
- mysql - MySQL Tuner 性能建议
- pandas - Pandas 中的 SAS proc 摘要类型替代
- blazor - 如何防止 Blazor 服务器端页面冻结?
- javascript - 如何在 React JS 中通过用户输入输入文本
- postgresql - []string 到 jsonb 与 Gorm 和 postgres
- kubernetes - 是否可以在 kubernetes 负载均衡器中直接使 pod 脱机
- flyte - 如何使用 flytesdk 从启动计划运行执行
- java - 使用 TestNG 类路径设置发生 JNI 错误
- iot - FIWARE OPC-UA。将源时间戳添加到元数据