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. Yann LeCun最新文章:自监督学习的统一框架
  2. 2.登录linun 输入密码登录不进去 进入单用户模式 修改 然后reboot
  3. 主板uefi和传统引导方式区别_反吊膜与传统污水池加盖方式有什么区别
  4. Python数据结构与算法(第三天)
  5. 如何优化Hive SQL ??
  6. 用拖拉实现设备驱动配置(EsayHMI最新驱动配置方式)
  7. Python递归通用接口响应深层提取
  8. Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
  9. Microsoft Active Directory(LDAP)连接常见错误代码
  10. c语言 怎么把数据存储,急求如何将下列C语言程序数据存储到文件中?
  11. 《数据挖掘导论》实验课——实验七、数据挖掘之K-means聚类算法
  12. 系统异常日志处理的思考
  13. android 5.0设备 外接键盘 输入中文
  14. 别人恃才自傲,你却虚怀若谷。——保持谦虚
  15. 09-一篇带你熟练使用多线程与原理「Thread」
  16. OMIM使用简要说明
  17. 干货 | 日部署 6000 次,携程持续交付与构建平台实践
  18. 响应式pbootcms教程资讯新闻博客类网站模板
  19. 计算机组成原理中fa代表什么,计算机组成原理名词解释
  20. 合肥市直计算机知识pdf,事业单位计算机基础知识题库(全).pdf

热门文章

  1. 开源编辑器Makedown的安装
  2. EMNLP'21 | 基于互指导和句间关系图的论点对抽取
  3. 【问答】开放领域问答梳理(2)
  4. 每日算法系列【LeetCode 1039】多边形三角剖分的最低得分
  5. python—将自定义函数的路径添加到系统路径中
  6. 一、1.kaggel简街市场预测—baseline代码解析
  7. 数据科学包9-pandas高级内容之数据IO
  8. DevOps和持续交付
  9. Linux多线程服务端编程:使用muduo C++网络库
  10. Python中DataFrame按照行遍历