var course = {
teacher :{
teacherId:001,
teacherName:"王"
},
course : {
courseId : 120,
courseName : "开心一笑"
},
admin : "班主任"
}
var obj_help = {
obj_tansform: function (data, temple) {
//子对象转化为指定结构的复杂对象
var _self = this;
var callee = function (obj) {
for (key in obj) {
if (typeof obj[key] === "object" && (!_self.obj_isArray(obj[key]))) {
obj[key] = callee(obj[key]);
} else {
obj[key] = data[key] ? data[key] : "";
}
}
return obj;
}
return callee(temple);
},
obj_revange: function (data) {
//转化为简单对象(不存在子对象)
var _self = this;
var _data = {};
var Rcallee = function (obj) {
for (key in obj) {
if (typeof obj[key] === "object" && (!_self.obj_isArray(obj[key]))) {
obj[key] = Rcallee(obj[key]);
} else {
_data[key] = obj[key];
}
}
}
Rcallee(data);
return _data;
},
obj_isArray: function (arr) {
return arr != null && typeof arr === "object" && 'splice' in arr && "join" in arr;
},
removeBlank: function (str) {
try {
return str.replace(/(^\s*)|(\s*$)/g, "");
} catch (e) {
console.log(str);
}
}
}
console.log(obj_help.obj_revange(course));

输出结果

倘若这样调用

var teacherMes = {
teacherName:"",
course:{
teacherId :"",
courseMes :{
courseId:"",
courseName:"",
admin:""
}
}
}
var data = obj_help.obj_revange(course); console.log(obj_help.obj_tansform(data,teacherMes));

那么输出结果

第一个函数是按照你给的模版初始化对象,第二个是把复杂的对象的子对象的属性全部提取到同一个对象下,

实际的可以使用的地方并不少,比如后台返回的json是一个复杂的对象,那么你可以直接简单化处理,同样提交数据时使用按照模版格式化数据后提交。

可以大大的减少由于属性在子对象下造成的困扰。

最新文章

  1. C++程序员如何转Java
  2. 集群CLUSTER种类介绍
  3. js_截取Url值
  4. java selenium (九) 常见web UI 元素操作 及API使用
  5. 计算div里面li个数
  6. Windows MDL原理总结
  7. 对Oracle10g rac ons服务的一些理解
  8. HDU 4085 斯坦纳树
  9. PAT-乙级-1046. 划拳(15)
  10. BaiduMap开发,获取公交站点信息。
  11. codeforces 671B Robin Hood 二分
  12. 深度学习word2vec笔记之算法篇
  13. C# DES加解密
  14. LeetCode OJ 109. Convert Sorted List to Binary Search Tree
  15. 推荐系统中的Graph Model
  16. Java之判断大整数是否为平方数
  17. 微信小程序支付功能
  18. Debian 系统安装 Nagios 服务器监控端
  19. 如何用Caffe训练自己的网络-探索与试验
  20. C-Free 5 安装 [Error] G__~1.EXE: (x86)\C-FREE~1\mingw\mingw32\bin\: No such file or directory

热门文章

  1. 札记:Fragment基础
  2. 通往全栈工程师的捷径 —— react
  3. C# 泛型
  4. linux的top命令参数详解
  5. ubuntu14.04下安装node.js
  6. 机器指令翻译成 JavaScript —— No.7 过渡语言
  7. 通过Mono 在 Heroku 上运行 .NET 应用
  8. JS中给正则表达式加变量
  9. 初探领域驱动设计(2)Repository在DDD中的应用
  10. WPF自定义控件第二 - 转盘按钮控件