Javascript Null 和 Empty 检查
Javascript Null and Empty check
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]));
数组是对象,所以上面的代码也会检查数组。
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]));
数组是对象,所以上面的代码也会检查数组。