isEmpty工具函数
  fBRHAdLS020g 2023年11月05日 39 0

在**项目开发中,需要在对未知数据类型做判空处理,期待空值列表: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;
  }
}

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
fBRHAdLS020g