javascript - Javascript Null 和 Empty 检查
问题描述
export const notEmpty = (data) => {
const type = Object.prototype.toString.call(data).slice(8, -1).toLowerCase();
switch (type) {
case 'null':
case 'undefined':
return false;
case 'object':
return Object.keys(data).length > 0;
case 'array':
case 'string':
return data !== 'undefined' && data !== 'null' && data.length > 0;
case 'boolean':
return !!data;
default:
return true;
}
};
我已经制作了上面的函数来检查 null、undefined、'' 和空数组和对象。但正如你所看到的,它有很多如果。还有其他更好的解决方案来检查它们吗?
解决方案
您当前的功能看起来不错,但您可以像这样改进它:
const notEmpty = (data) => {
if (!data) return false;
if (typeof data === 'object') return Object.keys(data).length > 0;
return true;
};
console.log(notEmpty(null));
console.log(notEmpty(undefined));
console.log(notEmpty(''));
console.log(notEmpty({}));
console.log(notEmpty([]));
console.log(notEmpty(false));
console.log(notEmpty({ a: 1 }));
console.log(notEmpty(true));
console.log(notEmpty('abc'));
console.log(notEmpty([1, 2, 3]));
数组是对象,所以上面也会检查数组。
推荐阅读
- airflow - 为什么气流的网络服务器在填满 Dagbag 后退出
- c++ - 未初始化的常量、编译错误、C++、GNU
- ios - 使用 Swift 5 的 didFinishPickingMediaWithInfo 错误
- amazon-s3 - Kafka Connect S3 sink - 如何使用消息本身的时间戳[时间戳提取器]
- python - 在 Python 中读取文件时包含文件名
- mysql - 如何汇总所有计数(案例)子列?
- javascript - 来自公共页面的 Facbeook 事件为空
- tensorflow - 如何从 Tensorflow 中的训练模型中删除最后一层
- angular - 在 Angular 中使用“reset()”和“resetForm()”方法的最佳实践是什么?为什么?
- property-list - 如何在茄子的属性列表中动态插入键和值