isEmpty工具函数
在**项目开发中,需要在对未知数据类型做判空处理,期待空值列表:undefined、null、''、NaN、[]、{}
, 注意非空: 0、false
;
而常见的lodash.isEmpty
, !value
均不能直接满足我们的需求,那么我们需要抽离一个工具函数isEmpty;
接口返回表格字段的数据:
表格中使用switch: 0(或者false)表示禁用,1(或者true)表示启用,undefined 表示该字段无值;
表格中使用tag: 多个tag使用数组表示['王小虎'、'张春阳'], [] || null 表示该字段无值;
即在常见的后端接口返回表格数据中需要满足该需求定义的空值。
对比lodash.isEmpty
与!value
undefined |
null |
'' |
[] |
{} |
NaN |
0 |
false |
备注 |
|
lodash.isEmpty |
true |
true |
true |
true |
true |
true // 不支持判断number类型 |
true // 不支持判断number类型 |
true // 不支持判断Boolean类型 |
传入不支持数据类型时返回true |
!value |
true |
true |
true |
false |
false |
true |
true |
true |
传入其他数据类型时返回false |
在**项目开发中,需要在对未知数据类型做判空处理,期待空值列表:undefined、null、''、NaN、[]、{}
, 注意非空: 0、false
;
而常见的lodash.isEmpty
, !value
均不能直接满足我们的需求,那么我们需要抽离一个工具函数isEmpty;
// 空值: [undefined, null, NaN, [], {}], 注意非空:0, false;
function isEmpty(value) {
switch (Object.prototype.toString.call(value)) {
case '[object Undefined]':
return value === void 0;
case '[object Null]':
return value === null;
case '[object Number]':
return isNaN(value);
case '[object String]':
return value === "";
case '[object Boolean]':
return false;
case '[object Object]':
return Object.keys(value).length === 0;
case '[object Array]':
return value.length === 0;
default:
return false;
}
}
如果这篇文章对您有帮助,您可以打赏我,有合作可以联系我

点击加入群交流15129679