从数组中删除NIL值和部分匹配

时间:2019-07-01 13:35:24

标签: ios arrays json swift

我有一个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”)

  • 我要删除空白的数组值
  • 删除值连接,该值连接是存储在financialInstitution字段中的较长字符串的一部分。

2 个答案:

答案 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")
}