当前位置:网站首页>js 去除掉对象中的null,‘‘,[],{}
js 去除掉对象中的null,‘‘,[],{}
2022-07-30 05:41:00 【勿扰丶】
- 使用场景:提交表单的时候去掉一些无用的参数
function removeEmptyField(obj) {
var newObj = {
}
if (typeof obj === 'string') {
obj = JSON.parse(obj)
}
if (obj instanceof Array) {
newObj = []
}
if (obj instanceof Object) {
for (var attr in obj) {
// 属性值不为'',null,undefined才加入新对象里面(去掉'',null,undefined)
if (obj.hasOwnProperty(attr) && obj[attr] !== '' && obj[attr] !== null && obj[attr] !== undefined) {
if (obj[attr] instanceof Object) {
// 空数组或空对象不加入新对象(去掉[],{})
if(JSON.stringify(obj[attr]) === '{}' || JSON.stringify(obj[attr]) === '[]') {
continue
}
// 属性值为对象,则递归执行去除方法
newObj[attr] = removeEmptyField(obj[attr])
} else if (
typeof obj[attr] === 'string' &&
((obj[attr].indexOf('{') > -1 && obj[attr].indexOf('}') > -1) ||
(obj[attr].indexOf('[') > -1 && obj[attr].indexOf(']') > -1))
) {
// 属性值为JSON时
try {
var attrObj = JSON.parse(obj[attr])
if (attrObj instanceof Object) {
newObj[attr] = removeEmptyField(attrObj)
}
} catch (e) {
newObj[attr] = obj[attr]
}
} else {
newObj[attr] = obj[attr]
}
}
}
}
return newObj
}
const testObj = {
a: '',
b: 123,
c: null,
d: undefined,
e: [],
f: [1,2,3,'',null],
g: {
},
h: {
x:1,y:'',z:null},
i:false,
j:true,
k:[{
name:1},{
}]
}
console.log(JSON.stringify(removeEmptyField(testObj)))
// {"b":123,"f":[1,2,3],"h":{"x":1},"i":false,"j":true,"k":[{"name":1}]}
边栏推荐
- Graphic mirror symmetry (schematic diagram)
- 信号量解决生产者消费者问题
- Navicat connection MySQL error: 1045 - Access denied for user 'root'@'localhost' (using password YES)
- 自定义异常类的使用
- MySQL user authorization
- mysql间隙锁失效?
- 【Pytorch】torch.manual_seed()、torch.cuda.manual_seed() 解释
- 零基础C语言“函数”教程,有手就行
- flask使用token认证
- 在弹性布局flex布局中,行内标签也能直接加宽高
猜你喜欢
![Art-template 中文文档[详细篇]](/img/72/d3e46a820796a48b458cd2d0a18f8f.png)
Art-template 中文文档[详细篇]

51.N皇后(回溯法)

optimizer.zero_grad()

互斥量解决线程同步问题

524.通过删除字母匹配到字典里最长单词

mysql time field is set to current time by default

div设置一个最小高度和最大高度,但是中间可以靠内容撑开

C语言:通过函数实现一个整形有序数组的二分查找

net start mysql MySQL service is starting. MySQL service failed to start.The service did not report any errors.

SRA数据下载方法总结
随机推荐
flask-socketio实现的网页聊天室(二)
81.搜索旋转排序数组II(数组旋转后二分查找)
php实现数据库的增删查改操作-教务管理系统
Qt设置窗口可拖动
This dependency was not found:
String类型字符串获取第一次或者最后一次出现的下标
Numpy 中 np.vstack() 和 np.hstack() 简单解析
[GStreamer] The name of the plugin should match GST_PLUGIN_DEFINE
flask的笔记
cross_val_score的用法
MongoDB快速入门与基本使用
417.太平洋大西洋水流问题
【无标题】ES5新特性
Navicat connection MySQL error: 1045 - Access denied for user 'root'@'localhost' (using password YES)
人生的第一篇博客(初识代码)
pwn-ROP
卷王的第一篇博客——编程学习的规划
VS2022中关于scanf函数报错解决方法
node手写服务器实现访问index页面
封装Cookie API