js 对象null 或者 'null' 值处理(去除null值)

简介

在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值, 很方便

  如果说不希望改变原有的值, 可以拷贝一个对象再执行该方法 

 

感谢您的阅读!如果文章中有任何错误,或者您有更好的理解和建议,欢迎和我联系!

你可能感兴趣的:(前端)