// 过滤对象中为null/undefined/''/[]/{}的属性值
export const clearDeep = obj =>
if (!obj || !typeof obj === 'object') return
const keys = Object.keys(obj)
for (var key of keys) {
const val = obj[key]
if (
typeof val === 'undefined' ||
((typeof val === 'object' || typeof val === 'string') && !val)
) {
// 如属性值为null或undefined或'',则将该属性删除
delete obj[key]
} else if (typeof val === 'object') {
// 属性值为对象,递归调用
clearDeep(obj[key])
if (Object.keys(obj[key]).length === 0) {
// 如某属性的值为不包含任何属性的独享,则将该属性删除
delete obj[key]
}
}
}
}
let obj = [
{
'a': 1,
'test': {}
},
{
'b': ''
},
{
'c': '',
'd': {
'e': null,
'f': undefined,
'g': 'test',
'h': [
{
'i': '',
'j': '哈哈哈',
'k': []
}
]
}
}
]
clearDeep(obj)
console.log(obj)
// [
{
'a': 1
},
{
'd': {
'g': 'test',
'h': [
{
'j': '哈哈哈',
}
]
}
}
]
递归遍历对象 ——过滤对象中为null/undefined/''/[]/{}的属性值
最新推荐文章于 2023-08-04 15:09:57 发布