想要判断是不是 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元素出现后,有个返回结果 ,需要拿这个结果再去做判断吗?这个判断的操作 如何 处理
110 3
|
12月前
|
JSON 小程序 JavaScript
小程序根据返回值是否为空判断标签是否显示
小程序根据返回值是否为空判断标签是否显示
89 0
|
24天前
|
前端开发 JavaScript
判断数组为空的方法有哪些?
本文介绍了多种判断数组是否为空的方法,包括使用 `length` 属性、隐式类型转换、`toString()`、`join()`、`every()`、`reduce()`、`filter()`、`some()` 方法以及循环。每种方法都有其适用场景,其中使用 `length` 属性和隐式类型转换最为常见和简单。文章首发于微信公众号“前端徐徐”。
64 2
判断数组为空的方法有哪些?
|
4月前
|
C#
C#中使用IntPtr.Size属性来判断当前系统是32位还是64位
这段代码首先检查 `IntPtr.Size`的值,如果是4,则输出"当前系统是32位";如果是8,则输出"当前系统是64位";如果都不是,就输出"未知系统位数"。
48 0
|
6月前
|
C++
c++判断
c++判断
39 1
|
6月前
|
C语言
C判断
C判断
40 0
|
6月前
|
算法 前端开发 索引
判断对象是否为空
判断对象是否为空
58 0
|
程序员 C语言
C 判断
C 判断。
43 0
|
前端开发
你真的会判断对象是否为空吗?
一个小小的判空,却很可能让你吃了大亏,如果一个判空没有做好,那么里面的逻辑就完全裸露了,相信你一定吃过 `NullPointerException` 的苦头!
118 0
|
索引
判断字符串回文
判断字符串回文
59 0