美文网首页
经验总结之key值按照固定的顺序排序

经验总结之key值按照固定的顺序排序

作者: 留白_汉服vs插画 | 来源:发表于2019-01-11 19:24 被阅读10次

    常见的对象数组排序,一般是按照key对应的value进行排序,或者按照key的值进行排序。
    比如

    RebateCycle = {
        1: "b",
        4: "d",
        2: "a",
        3: "c",
    }
    RebateCycle = {
        1: "b",
        2: "a",
        3: "c",
        4: "d",
    }
    //可以按照key进行排序,
    RebateCycle = {
        2: "a",
        1: "b",
        3: "c",
        4: "d",
    }
    

    这里有一种比较特殊的情况,比如已经知道

    RebateCycle = {
        WITH_PAYMENT: "对账时",
        MONTH: "每月1日",
        SEASON: "每季度1日",
        YEAR: "每年1月1日",
    }
    

    后端传来的数据,按照这个RebateCycle中key的固定顺序进行排序
    先把RebateCycle对象中key抽出来var keys = Object.keys(RebateCycle)
    keys.indexOf(item.key) 就是后端传来的某一组数据,它的key在数组的位置序号。然后通过
    sort(function(a,b){return keys.indexOf(a.key)-keys.indexOf(b.key)})来排序

       getOptions: function(parameter){
           if(parameter.cooperationType){
               $.ajax({
                   url: Remote.computeBasic.searchByCondition,
                   data: parameter,
                   type: 'POST',
                   success: function (data) {
                       var keys = Object.keys(RebateCycle)
                       var options = data.map(function (n) {
                           return {value: n.cycle, label:RebateCycle[n.cycle],name: n.cycle, data: n};
                       }).sort(function (item1,item2){
                           return keys.indexOf(item1.value) - keys.indexOf(item2.value);
                       })
                       this.setState({
                           options: options
                       })
                   }.bind(this)
               })
           }else {
               this.setState({
                   options: []
               })
           }
       }
    

    相关文章

      网友评论

          本文标题:经验总结之key值按照固定的顺序排序

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