判断对象是否为空对象,以及对象的属性值是否为空
/**
* 递归判断对象的属性值是否为空
*
* @param {*} data 对象
* @param {Array} exclude 要忽略的 key 数组
* @returns boolean
*/
function isEmptyObject(data, exclude=[]){
if (Array.isArray(data)) return data.every((item) => isEmptyObject(item))
if (data === null) return true
if (typeof data === 'object')
return isEmptyObject(
Object.keys(data)
.filter((key) => !exclude.includes(key))
.map((key) => data[key])
)
return data === '' || data === undefined
}