ios - 从数组中删除 NIL 值和部分匹配
问题描述
我有一个 JSON 数据数组,我想删除 nil 对象,并且我有一个对象,其中包含我想删除的长字符串中的单词 Connex。此值位于 $0.financialInstitution 字段中。
我尝试使用过滤器来查找要删除的项目。我的 JSON 数据正确呈现。
我已经尝试使用这篇文章中的解决方案:检查数组是否包含 Swift 中字符串的一部分?
我收到一个错误:当我更改数组以使用我的 JSON 数据时,无法将类型 '(String) -> Bool' 的值转换为预期的参数类型 '(RateDetail) -> Bool'。
// to remove / surpress nil values let nonNilElements = rateDetails.compactMap {$0} // this does not work //code form post noted above, updated with my search parameters and array let itemsArray = rateDetails let searchToSearch = "Connex" let filteredStrings = itemsArray.filter({(item: String) -> Bool in let stringMatch = item.lowercased().range(of: searchToSearch.lowercased()) return stringMatch != nil ? true : false }) print(filteredStrings) if (filteredStrings as NSArray).count > 0 { //Record found } else { //Record Not found }
价格详情
.RateDetail(financialInstitution: "Your Neighborhood CU", variableRate: "0", SixMonths: "0", oneYear: "3.59", twoYear: "3.69", threeYear: "3.79",fourYear: "3.89", FiveYear: " 3.99”,日期:“2019-07-01”)
要删除的值:
RatesJSON.RateDetail(financialInstitution: CANNEX on June 30, 2019 at 00:30:20 ET", variableRate: "0", SixMonths: "0", oneYear: "0", twoYear: "0", threeYear: "0" ,四年:“0”,五年:“0”,日期:“2019-07-01”),
要删除的空白值:
RatesJSON.RateDetail(金融机构:“”,variableRate:“0”,sixMonths:“0”,oneYear:“0”,twoYear:“0”,threeYear:“0”,fourYear:“0”,fiveYear:“0” ,日期:“2019-07-01”)
- 我想删除空白的数组值
- 删除作为存储在金融机构字段中的较长字符串的一部分的值连接。
解决方案
我不知道我是否能理解你,但尝试这样的事情......
let resultArray = rateDetailArray.filter { rateDetail in
return !rateDetail.financialInstitution.isEmpty && !rateDetail.financialInstitution.lowercased().contains("Connex")
}
推荐阅读
- python - 使用 Openpyxl 加载工作簿时 Python 出错?
- nginx - nginx 静态文件与别名和子路径混淆
- c - 如何将char转换为int,反之亦然?
- c# - 如何在 Visual Studio 2019 中将清单文件添加到我的 C# 程序?
- reactjs - 如何在反应测试中的一个测试中处理两个不同的组件?
- outlook - 如果 Outlook 连接到 Exchange Server 以外的其他服务器,则会议室查找器显示为禁用
- ionic-framework - 在cordova插件中包含外部jar文件
- vuejs2 - 如何在Vue中显示或隐藏带有复选框输入的元素?
- excel - 将表中的多个 csv 加载到 PowerQuery 中
- java - 是否可以在 apache camel 的拆分迭代之间保持相同的属性值?