Swift 数组转字典

由于后台只能返回数组的形式,需要本地进行拆分,由"店铺名称"“店铺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{
        var dict = Dictionary()
        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
        }

你可能感兴趣的:(Swift 数组转字典)