想要判断是不是 empty 还真的挺麻烦的

简介: 封装了一个查询控件,如果没有输入查询条件的话,就清空对应的查询条件,如果输入查询条件,则生成对应的查询对象。

封装了一个查询控件,如果没有输入查询条件的话,就清空对应的查询条件,如果输入查询条件,则生成对应的查询对象。


这里就需要判断一下用户是否输入。


可能你会说,这还容易,判断一下是不是 ‘’ 不就可以了吗?


但是没有那么简单,首先就是类型的问题。


不同的组件返回的类型是不一样的,比如 el-number返回的是number类型,就不能直接判断是不是 '' 。


el-cascader 控件返回的是一个数组。


那么首先就要判断类型,然后在做细节判断,于是有了下面的代码:

const _isEmpty = (val) => {
  switch (typeName(val)) {
    case 'null':
    case 'undefined':
      return true
      break
    case 'string':
      return val.length === 0
      break
    case 'number':
    case 'bigInt':
      return isNaN(val)
      break
    case 'array':
      return val.length === 0
      break
    default:
      return false
      break
  }
}


首先要去掉 null 和 underfined。


然后 string 类型可以判断长度,number 类型要用isNaN来判断,否则会出问题。


数组要用长度来判断。


对象嘛,目前好像不会传入对象。


好像还没有判断日期,日期被清空后好像返回null。


目前可以凑合用,以后发现问题再改进。


相关文章
|
6月前
阿里云RPA元素出现后,有个返回结果 ,需要拿这个结果再去做判断吗?这个判断的操作 如何 处理
【2月更文挑战第8天】阿里云RPA元素出现后,有个返回结果 ,需要拿这个结果再去做判断吗?这个判断的操作 如何 处理
111 3
|
JSON 小程序 JavaScript
小程序根据返回值是否为空判断标签是否显示
小程序根据返回值是否为空判断标签是否显示
93 0
|
JavaScript Dubbo Java
还用 if(obj!=null) 做非空判断?带你快速上手 Optional 实战性理解
1.前言 2.认识Optional并使用 3.实战场景再现 4.Optional使用注意事项 5.jdk1.9对Optional优化
|
4月前
|
C#
C#中使用IntPtr.Size属性来判断当前系统是32位还是64位
这段代码首先检查 `IntPtr.Size`的值,如果是4,则输出"当前系统是32位";如果是8,则输出"当前系统是64位";如果都不是,就输出"未知系统位数"。
59 0
|
6月前
|
弹性计算 运维 Shell
实现文件存在与否的判断
【4月更文挑战第30天】
39 1
【TS】关于v-for数组对象遍历以及在页面上使用提示object类型的问题解决
【TS】关于v-for数组对象遍历以及在页面上使用提示object类型的问题解决
178 0
|
安全 Java
parallelStream() 踩坑指南,出现null元素,输出list的size不符合预期
parallelStream() 踩坑指南,出现null元素,输出list的size不符合预期
323 0
|
数据库
【硬着头皮】你还在用size来判断集合是否为空?
【硬着头皮】你还在用size来判断集合是否为空?
【硬着头皮】你还在用size来判断集合是否为空?
split "." 的时候内容为空如何解决
split "." 的时候内容为空如何解决
166 0
|
缓存 Java vr&ar
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
209 0