在javascript中, 前端把null值展示到页面上, 对用户来说是不太友好的, 我们所以经常写很多对 null 值判断的代码, 费时费力, 所以写了一个统一的函数来处理
/**
* data 需要传入的去除null值的对象或者值
* defaultStr 将null值转为该字符串, 不传默认为 空字符串 ''
*/
function removeNull(data, defaultStr = '') {
// 普通数据类型
if (typeof data != 'object' || data == null) {
if ((data == null || data == 'null')) {
return defaultStr;
} else {
return data;
}
}
// 引用数据类型
for (const v in data) {
if (data[v] == null || data[v] == 'null') {
data[v] = defaultStr;
}
if (typeof data[v] == 'object') {
removeNull(data[v])
}
}
}
// 测试数据
const data = {
aa: null,
bb: 'bb',
cc: 'null',
dd: {
dd1: 'dd1',
dd2: null,
dd3: 'null'
},
ee: [{
ee: 'null',
ff: ['null', {
ff1: {
ff2: null
}
}]
}, null]
}
// 如果是object, 因为是引用传递, 我没有将data return回来, 调用方法之后该data已经去除完成
removeNull(data)
console.log(data)
至此一个简单的去除对象中null值的方法就写好了, 是不是很简单呢 0..0
可以递归的去除对象里的子对象的null值, 很方便
如果说不希望改变原有的值, 可以拷贝一个对象再执行该方法
感谢您的阅读!如果文章中有任何错误,或者您有更好的理解和建议,欢迎和我联系!