首页 > 解决方案 > 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、'' 和空数组和对象。但正如你所看到的,它有很多如果。还有其他更好的解决方案来检查它们吗?

标签: javascripttypesisnull

解决方案


您当前的功能看起来不错,但您可以像这样改进它:

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]));

数组是对象,所以上面也会检查数组。


推荐阅读