js复杂对象和简单对象的简单转化
2024-08-01 06:35:12
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是一个复杂的对象,那么你可以直接简单化处理,同样提交数据时使用按照模版格式化数据后提交。
可以大大的减少由于属性在子对象下造成的困扰。
最新文章
- C++程序员如何转Java
- 集群CLUSTER种类介绍
- js_截取Url值
- java selenium (九) 常见web UI 元素操作 及API使用
- 计算div里面li个数
- Windows MDL原理总结
- 对Oracle10g rac ons服务的一些理解
- HDU 4085 斯坦纳树
- PAT-乙级-1046. 划拳(15)
- BaiduMap开发,获取公交站点信息。
- codeforces 671B Robin Hood 二分
- 深度学习word2vec笔记之算法篇
- C# DES加解密
- LeetCode OJ 109. Convert Sorted List to Binary Search Tree
- 推荐系统中的Graph Model
- Java之判断大整数是否为平方数
- 微信小程序支付功能
- Debian 系统安装 Nagios 服务器监控端
- 如何用Caffe训练自己的网络-探索与试验
- C-Free 5 安装 [Error] G__~1.EXE: (x86)\C-FREE~1\mingw\mingw32\bin\: No such file or directory