js复杂对象和简单对象的简单转化
![](/assets/blank.gif)
![](/assets/blank.gif)
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
输出结果
倘若这样调用
![](/assets/blank.gif)
![](/assets/blank.gif)
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复杂对象和简单对象的简单转化相关推荐
- JS中将对象转化为数组,数组转对象
https://www.cnblogs.com/wancheng7/p/8735168.html 对象的两种取值方式 我们都知道,JS中对象有两种取值方式,通过在.后面直接加属性名取值,这也是我们最常 ...
- js将url地址中的信息转化为对象obj
js将url地址中的信息转化为对象obj function urlToObj(str) {let obj = {};let str1 = str.split("?");let st ...
- Js数组转对象(特殊格式)和 JS中将对象转化为数组
Js数组转对象(特殊格式)和 JS中将对象转化为数组 数组转化为对象特殊格式 arr:[ { } ,{ },{ }] 转化为obj:{ { },{ },{ } } 利用ES6语法: let obj = ...
- Three.js相机对象(正投影OrthographicCamera、透视投影PerspectiveCamera)
Three.js相机对象(正投影OrthographicCamera.透视投影PerspectiveCamera) Three.js相机对象(正投影OrthographicCamera.透视投影Per ...
- Node.js 全局对象
Node.js 全局对象 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 gl ...
- java 父类转子类_Java多态,对象转型,和简单工厂模式。希望对您有帮助!
各位读者老爷们大家好鸭~图图又来了,今天我们要说一下"多态". 怎么理解这两个字呢?可以理解为同一个引用对象的不同表现形态,即将父类的引用指向子类的对象.这是比较官方的书面解释,大 ...
- Json对象与Json字符串的转化、JSON字符串与Java对象的转换
一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...
- html制作统计期末成绩,JS-结合html综合练习js的对象——班级成绩表制作
对象综合练习 body { font: 14px "微软雅黑"; } span { padding: 5px; } table { margin: 0 auto; border: ...
- js Date对象总结
Date在js中和Array类似,都是拥有自己的特殊方法的特殊对象. 由于平常用到Date着实不多,对它的了解颇浅.上周被问到怎么样获取某年某个月的天数,我当时想了一会儿,回答说有两种,一种自己写判断 ...
- json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换
一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...
最新文章
- Spring Cloud Alibaba 系统保护 - 限流与熔断:Sentinel 在项目中的最佳实践
- 1.75万亿参数,刚刚智源发布了全球最大预训练模型“悟道2.0”
- Android 追加写入文件的三种方法
- 整理一份程序员常用的各类工具、技术站点
- SELinux让php程序无法远程连接数据库
- 关于python的if条件语句,whilefor循环等的简单说。
- 美国教授描述未来学校,将颠覆现有教育模式
- 数据结构之 栈 (Python 版)
- (转)Managed DirectX +C# 开发(入门篇)(二)
- 【最短路】 ZOJ 1544 Currency Exchange 判断负圈
- 你不是不优秀,而是太着急
- 程序员为何找不到女票的原因
- 实验四:app内页面跳转
- 6sp电池测试软件,小白必看!iPhone 6sp电池更换记录,续航半天变成2天,给力!...
- Java绘制正态分布统计图
- 物联网技术练习题(二)——多选题与简答题
- JS对于字符串的切割截取
- winpe做服务器系统备份,转 在winPE系统下备份和恢复Raid5数据
- VMware Workstation Player 找不到共享文件夹的解决方法
- 实时数仓在滴滴的实践和落地
热门文章
- 关于对DataTable进行操作的几个例子总结
- 知深行远:关于图神经网络层数加深的探索
- 【面经】关于Transformer,面试官们都怎么问
- 本周论文推荐(12.14-12.20)
- 练手|常见近30种NLP任务的练手项目
- 2019118_四个化学数据分析(1)
- 一段平平无奇的秋招经历
- pytorch---pack_padded_sequence()与pad_packed_sequence()
- pandas之map(), apply()和applymap()
- 初识爬虫的那天,我选择了Java!