前后端分离之下,相关接口定义,参数更改,数据结构调整后端总有说不尽的想法。同一个人对接多个后端接口,相对幽雅减少因为参数修改,而导致前端跟着更改。
目前,优先处理,脱离后端参数名的束缚,让前端自由定义参数,并且排出后端所定义的无用参。方法很简单,直接上方法。原理就是递归遍历,根据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];
}
}
}
}