我制作字典数组时遇到了麻烦。我需要
["1.0" : [Park_N_Tap.GasStationList,Park_N_Tap.GasStationList,Park_N_Tap.GasStationList], "2.0" : [Park_N_Tap.GasStationList,Park_N_Tap.GasStationList,Park_N_Tap.GasStationList], "3.0" : [Park_N_Tap.GasStationList,Park_N_Tap.GasStationList,Park_N_Tap.GasStationList]]
形成这个
[["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["1.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList], ["2.0": Park_N_Tap.GasStationList]]
请建议我甜蜜而合适的答案。
答案 0 :(得分:1)
let from = [["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["1.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"], ["2.0": "Park_N_Tap.GasStationList"]]
var to = [String:[String]]()
from.forEach { (dic) in
dic.forEach({ (key,value) in
var tempArray = to[key] ?? [String]()
tempArray.append(value)
to[key] = tempArray
})
}
'到'是你最终需要的结果,我不知道Park_N_Tap.GasStationList是什么,所以我用字符串给你看看
[String:[String]]是无序的,如果你需要订购数组,你可以尝试
var to = from.reduce(NSMutableDictionary()) { (result, dic) -> NSMutableDictionary in
dic.forEach({ (key,value) in
var tempArray = result[key] as? [String] ?? [String]()
tempArray.append(value)
result[key] = tempArray
})
return result
}.sorted(by: {($0.0.key as! String) < ($0.1.key as! String)})
答案 1 :(得分:0)
试试这段代码: -
var dummyData: [String :[Any]] = ["1.0" : ["Park_N_Tap.GasStationList","Park_N_Tap.GasStationList","Park_N_Tap.GasStationList"], "2.0" : ["Park_N_Tap.GasStationList","Park_N_Tap.GasStationList","Park_N_Tap.GasStationList"], "3.0" : ["Park_N_Tap.GasStationList","Park_N_Tap.GasStationList","Park_N_Tap.GasStationList"]]
var newArray: [[String:Any]] = []
for eachItem in dummyData{
var temp = [String:Any]()
for eachValue in eachItem.value{
var temp = [String:Any]()
temp = [eachItem.key : eachValue]
print(temp)
newArray.append(temp)
}
}
答案 2 :(得分:0)
let from = ["1.0" : ["Park_N_Tap.GasStationList","Park_N_Tap.GasStationList","Park_N_Tap.GasStationList"], "2.0" : ["Park_N_Tap.GasStationList","Park_N_Tap.GasStationList","Park_N_Tap.GasStationList"], "3.0" : ["Park_N_Tap.GasStationList","Park_N_Tap.GasStationList","Park_N_Tap.GasStationList"]]
var to = [[String:Any]]()
from.forEach { (key,value) in
value.forEach({ (value1) in
to.append([key:value])
})
}