我有一个JSON数据数组,我想删除nil个对象,并且我有一个对象和一个要删除的长字符串中的Connex单词。该值在$ 0.financialInstitution字段中。
我尝试使用过滤器查找要删除的项目。我的JSON数据正确呈现。
我已尝试使用此帖子上的解决方案:Check if array contains part of a string in Swift?
我得到一个错误:当我更改数组以使用JSON数据时,无法将类型'(String)-> Bool'的值转换为预期的参数类型'(RateDetail)-> Bool'。
[ '_events',
'_eventsCount',
'_maxListeners',
'wsdl',
'soapHeaders',
'httpHeaders',
'bodyAttributes',
'xmlHandler',
'getInfosKYC',
'WSMVolaGetInfosKYCCtrl',
'httpClient' ]
RateDetails中的值
.RateDetail(financialInstitution:“您的邻居CU”,variableRate:“ 0”,六个月:“ 0”,一个年份:“ 3.59”,两个年份:“ 3.69”,三个年份:“ 3.79”,四个年份:“ 3.89”,五年:“ 3.99”,日期:“ 2019-07-01”)
要删除的值:
RatesJSON.RateDetail(financialInstitution:CANNEX on 2019年6月30日,美国东部时间00:30:20“,variableRate:” 0“,六个月:” 0“,一个年份:” 0“,两个年份:” 0“,三个年份: “ 0”,四年:“ 0”,五年:“ 0”,日期:“ 2019-07-01”),
要删除的空白值:
RatesJSON.RateDetail(financialInstitution:“”,variableRate:“ 0”,sixMonths:“ 0”,oneYear:“ 0”,twoYear:“ 0”,threeYear:“ 0”,fourYear:“ 0”,五年: “ 0”,日期:“ 2019-07-01”)
答案 0 :(得分:0)
itemsArray是RateDetails的数组吗?
如果是这样,则您的过滤器关闭声明数组中的每个项目都是一个String,这是不正确的。这是一个RateDetail。
所以正确的闭包看起来像这样:
itemsArray.filter({ (item: RateDetail) -> Bool in
...
})
答案 1 :(得分:0)
我不知道我是否能理解你,但是尝试这样的事情……
let resultArray = rateDetailArray.filter { rateDetail in
return !rateDetail.financialInstitution.isEmpty && !rateDetail.financialInstitution.lowercased().contains("Connex")
}