在工作中,需要滤除对象中的空值,将非空值转给后端。
前期采用网友给出的pickBy滤除对象的方法,发现是有问题的:
const data = {
姓名:"张三",
性别: "男",
有效: false,
职业: null
}
const tmp = _.pickBy(data)
console.log(JSON.stringify(tmp))
希望输出: { "姓名":“张三, "性别":"男", "有效": false}
实际输出结果为:{ " 姓名":"张三","性别": "男"}
可见,有效: false也被滤除掉了。这是不对的,不是我们希望的结果。
于是想到用lodash的omit函数:
const tmp = _.omit(data, _.isNuLL)
将空属性给滤除掉。这样就正常了,输出:
{ "姓名":"张三", "性别": "男", "有效":"false"}
该方法在网上搜不到,自己记录一下,希望对大家有帮助。