1.轉化
str = "num:18,state:0|num:17,state:1"
轉化成stateModel
map :把里面的每個元素按照你的條件進行轉化
reduce:把所有的元素---》合并成result,比如我這里
objArray:["num:18","state:0"]
使用reduce把所有的obj-》model的屬性,最終轉化成stateModel
sort:這個感覺用法和oc差不多亚脆,閉包使用便捷
示例(排序):
let array = U.sorted(by: { $0.num < $1.num})
2.代碼示例
class stateModel:NSObject{
var num = ""
var state = ""
}
let str = "num:18,state:0|num:17,state:1"
let array = str.components(separatedBy: "|")
let U = array.map { (obj) -> stateModel in
let objArray:Array<String> = obj.components(separatedBy: ",")
let model = stateModel()
print(objArray)
objArray.reduce(model, { (model, obj) -> stateModel in
if obj.contains("num:"){
model.num = obj.replacingOccurrences(of: "num:", with: "")
}
print("_____________")
if obj.contains("state:"){
model.state = obj.replacingOccurrences(of: "state:", with: "")
}
return model
})
return model
}
print("*******")
print(U.first!.num)
print(U.first!.state)
print("*******")
print(U.last!.num)
print(U.last!.state)
輸出:
["num:18", "state:0"]
_____________
_____________
["num:17", "state:1"]
_____________
_____________
18
0
17
1