我有一个 JSON 数据数组,我想删除 nil 对象,并且我有一个在长字符串中带有 Connex 一词的对象,我想删除它。该值位于 $0.financialInstitution 字段中。
我尝试使用过滤器来查找我要删除的项目。我的 JSON 数据正确呈现。
我已经尝试使用这篇文章中的解决方案:Check if array contains part of a string in 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(金融机构:“您的邻居 C.U.”,variableRate:“0”,六个月:“0”,一年:“3.59”,两年:“3.69”,三年:“3.79”,四年:“3.89”,五年:“3.99”,日期:“2019-07-01”)
要删除的值:
RatesJSON.RateDetail(金融机构:CANNEX,2019 年 6 月 30 日 00:30:20 ET”,variableRate:“0”,六个月:“0”,一年:“0”,两年:“0”,三年: “0”,四年:“0”,五年:“0”,日期:“2019-07-01”),
要删除的空白值:
RatesJSON.RateDetail(金融机构:“”,变量利率:“0”,六个月:“0”,一年:“0”,两年:“0”,三年:“0”,四年:“0”,五年: “0”,日期:“2019-07-01”)
- 我想删除空白的数组值
- 删除作为存储在 FinancialInstitution 字段中的较长字符串一部分的值 connex。
最佳答案
itemsArray 是 RateDetails 数组吗?
如果是这样,您的过滤器闭包会声明数组中的每个项目都是一个字符串,但事实并非如此。这是一个费率详细信息。
所以正确的闭包看起来像这样:
itemsArray.filter({ (item: RateDetail) -> Bool in
...
})
关于ios - 从数组中删除 NIL 值和部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56836670/