美文网首页
Swift (map,reduce,sorted)

Swift (map,reduce,sorted)

作者: 拥抱月亮的大星星 | 来源:发表于2016-11-17 13:35 被阅读36次

    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

    相关文章

      网友评论

          本文标题:Swift (map,reduce,sorted)

          本文链接:https://www.haomeiwen.com/subject/mhpdpttx.html