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