(@_@;)我是程序猿,我编程,我快乐,知识改变命运,技术成就梦想   oh yeah!合作VX "w6668263" 联系Email:ye583025823@126.com

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;
  }
}

 

posted on 2023-08-23 17:36  一个草率的龙果果  阅读(75)  评论(0编辑  收藏  举报

导航