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
网友评论