iOS开发笔记

Swift 数组转字典

2021-08-02  本文已影响0人  younger_times

由于后台只能返回数组的形式,需要本地进行拆分,由"店铺名称"“店铺ID”来进行分组。

struct GoodsModel:HandyJSON{
 var shopName = ""
 var price = 0
 var shopId = 0
 var isSelect = false 
}
public extension Array{
      /// 将数组转换为字典形式
    func jq_toDict(_ f:(Element)->String)->Dictionary<String,[Element]>{
        var dict = Dictionary<String,[Element]>()
        for item in self {
            if dict[f(item)] == nil {
                dict[f(item)] = [item] //第一次必定是空,需要创建一个数组
            }else{
                dict[f(item)]!.append(item) //2+次进行添加
            }
        }
        return dict
    }
}

使用

 //进行一次选中Model的过滤
   let selectModel = self.items.map({$0.isSelect}) as! [GoodsModel]
  
//返回根据某字段来进行分组
        let shopSelectDict = selectModel.jq_toDict { model in
            if model.name.isEmpty{
                return "未知店铺"
            }
            return model.name
        }
上一篇下一篇

猜你喜欢

热点阅读