利用递归脱离后端参数的束缚达到更高的可移植

前后端分离之下,相关接口定义,参数更改,数据结构调整后端总有说不尽的想法。同一个人对接多个后端接口,相对幽雅减少因为参数修改,而导致前端跟着更改。

目前,优先处理,脱离后端参数名的束缚,让前端自由定义参数,并且排出后端所定义的无用参。方法很简单,直接上方法。原理就是递归遍历,根据map对象映射参数。

主要函数:

var dataval = {}; //后端参数对象
var parent = {};  //新的对象存储容器
var mapval = {  //地图映射参数
    "msg": "webmsg"  
    
}

function mapName(dataval, mapval, parent){ //原对象数据  地图  新对象数据
            var dataval = dataval;
            var mapval = mapval;
            var parent = parent;
            
            for(var attr in dataval){
                if(!mapval[attr]){continue;}
                var typeData = typeof dataval[attr];
                
                if(typeData == "object"){
                      parent[mapval[attr]] = {};
                      if(dataval[attr] instanceof Array){
                            parent[mapval[attr]] = [];
                            for(var i =0; i<dataval[attr].length; i++){
                                var ms = {};
                                parent[mapval[attr]].push(ms);
                                mapName(dataval[attr][i], mapval, parent[mapval[attr]][i]);
                            }
                            
                        }else{
                              mapName(dataval[attr], mapval, parent[mapval[attr]]);
                        }
                    
                }else{
                    parent[mapval[attr]] = dataval[attr];
                }
            }
        }
  }

猜你喜欢

转载自blog.csdn.net/guanzhangl/article/details/89508597