好久没写博客记录了
场景:表单填写时,填写完对应栏目需要有填完的标识
下面是自己写的一坨代码
export function objecAtrtIsEmpty(data) {
// 如果是数组,遍历数组里面的
if (Array.isArray(data)) {
if (data.length == 0) return false;
return data.every(el => {
return objecAtrtIsEmpty(el);
});
// 非空数组
} else if (Object.prototype.toString.call(data) === "[object Object]" && JSON.stringify(data) !== '{}') {
//对象or对象数组
return Object.keys(data).every(key => {
// 如果对象子元素为数组
if (Array.isArray(data[key])) {
if (data[key].length == 0) return false;
return data[key].every(el => {
return objecAtrtIsEmpty(el);
});
} else if (Object.prototype.toString.call(data) === "[object Object]") {
// 如果0表示不为空的话可以直接用!data
// 直接用!data,非运算符的话有些值为0的话会被过滤掉
return data[key] != "" && data[key] != null && data[key] != undefined;
} else {
return key != "" && key != null && key != undefined;
}
});
} else if (Object.prototype.toString.call(data) === "[object Object]" && JSON.stringify(data) === '{}') {
return false;
} else {
// 处理单个值
return data != "" && data != null && data != undefined;
}
}

感觉好绕,来个大佬提供更优的方案 赐教
版权声明:本文为simper_boy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。