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));

View Code

输出结果

倘若这样调用

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

View Code

那么输出结果

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

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

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

转载于:https://www.cnblogs.com/ertang/p/6253375.html

js复杂对象和简单对象的简单转化相关推荐

  1. JS中将对象转化为数组,数组转对象

    https://www.cnblogs.com/wancheng7/p/8735168.html 对象的两种取值方式 我们都知道,JS中对象有两种取值方式,通过在.后面直接加属性名取值,这也是我们最常 ...

  2. js将url地址中的信息转化为对象obj

    js将url地址中的信息转化为对象obj function urlToObj(str) {let obj = {};let str1 = str.split("?");let st ...

  3. Js数组转对象(特殊格式)和 JS中将对象转化为数组

    Js数组转对象(特殊格式)和 JS中将对象转化为数组 数组转化为对象特殊格式 arr:[ { } ,{ },{ }] 转化为obj:{ { },{ },{ } } 利用ES6语法: let obj = ...

  4. Three.js相机对象(正投影OrthographicCamera、透视投影PerspectiveCamera)

    Three.js相机对象(正投影OrthographicCamera.透视投影PerspectiveCamera) Three.js相机对象(正投影OrthographicCamera.透视投影Per ...

  5. Node.js 全局对象

    Node.js 全局对象 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 gl ...

  6. java 父类转子类_Java多态,对象转型,和简单工厂模式。希望对您有帮助!

    各位读者老爷们大家好鸭~图图又来了,今天我们要说一下"多态". 怎么理解这两个字呢?可以理解为同一个引用对象的不同表现形态,即将父类的引用指向子类的对象.这是比较官方的书面解释,大 ...

  7. Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  8. html制作统计期末成绩,JS-结合html综合练习js的对象——班级成绩表制作

    对象综合练习 body { font: 14px "微软雅黑"; } span { padding: 5px; } table { margin: 0 auto; border: ...

  9. js Date对象总结

    Date在js中和Array类似,都是拥有自己的特殊方法的特殊对象. 由于平常用到Date着实不多,对它的了解颇浅.上周被问到怎么样获取某年某个月的天数,我当时想了一会儿,回答说有两种,一种自己写判断 ...

  10. json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

最新文章

  1. Spring Cloud Alibaba 系统保护 - 限流与熔断:Sentinel 在项目中的最佳实践
  2. 1.75万亿参数,刚刚智源发布了全球最大预训练模型“悟道2.0”
  3. Android 追加写入文件的三种方法
  4. 整理一份程序员常用的各类工具、技术站点
  5. SELinux让php程序无法远程连接数据库
  6. 关于python的if条件语句,whilefor循环等的简单说。
  7. 美国教授描述未来学校,将颠覆现有教育模式
  8. 数据结构之 栈 (Python 版)
  9. (转)Managed DirectX +C# 开发(入门篇)(二)
  10. 【最短路】 ZOJ 1544 Currency Exchange 判断负圈
  11. 你不是不优秀,而是太着急
  12. 程序员为何找不到女票的原因
  13. 实验四:app内页面跳转
  14. 6sp电池测试软件,小白必看!iPhone 6sp电池更换记录,续航半天变成2天,给力!...
  15. Java绘制正态分布统计图
  16. 物联网技术练习题(二)——多选题与简答题
  17. JS对于字符串的切割截取
  18. winpe做服务器系统备份,转 在winPE系统下备份和恢复Raid5数据
  19. VMware Workstation Player 找不到共享文件夹的解决方法
  20. 实时数仓在滴滴的实践和落地

热门文章

  1. 关于对DataTable进行操作的几个例子总结
  2. 知深行远:关于图神经网络层数加深的探索
  3. 【面经】关于Transformer,面试官们都怎么问
  4. 本周论文推荐(12.14-12.20)
  5. 练手|常见近30种NLP任务的练手项目
  6. 2019118_四个化学数据分析(1)
  7. 一段平平无奇的秋招经历
  8. pytorch---pack_padded_sequence()与pad_packed_sequence()
  9. pandas之map(), apply()和applymap()
  10. 初识爬虫的那天,我选择了Java!