过滤对象中 值为null 或undefined的属性

1.filter && reduce

delEmptyData(obj = {}) {
const params = Object.keys(obj).filter(s => obj[s] !== null).reduce((acc, key) => ({ ...acc, [key]: obj[key] }), {})
return params
},

先filter处理值为null(可添加 && obj[s] !== undefined),再通过reduce传入初始{},回调循环将符合条件的属性和属性值合并到对象中,再返回一个新对象。

array.reduce((prev, cur, index, arr)=> {
/***/
}, initialValue)

参数一: callback 函数(执行数组中每个值的函数,包含四个参数):

prev 必需 上一次调用回调返回的值,或者是提供的初始值(initialValue))
cur 必需(数组中当前被处理的元素)
index 可选 (当前元素在数组中的索引)
arr 可选 (调用 reduce 的数组)
参数二:initialValue 可选 (表示初始值,作为第一次调用 callback 的第一个参数。)

提供初始值,cur 从数组第一项开始,若不提供初始值,则 cur 从第二项开始执行,对应的第一次 prev 是数组第一项的值

2. delete

function isEmpty(obj) {
if (typeof obj === 'undefined' || obj === null || obj === '') return true;
return false
}
delEmptyData(formData) {
Object.keys(formData).forEach(item => {
if (this.isEmpty(formData[item])) {
delete formData[item]
}
})
return formData;
}