在 JavaScript 中检查数组、对象、字符串和数字等数据类型的空值
check for empty values in JavaScript for datatypes like Array, Object, String and Number
我需要检查输入参数是否为空,就像 php empty
函数一样。
例如,如果我有名称为 isEmpty
的函数,并且我将 string
作为参数传递给它,那么函数将 return true
如果字符串为空,否则 false
和类似的其他数据类型,如 Object
、Array
和 Number
.
let isEmpty = param => {
let isAnObject = (obj) => {
if (obj == null) return false;
return obj.constructor.name.toLowerCase() === "object"
}
if (Array.isArray(param)) {
return !param.length;
}
if (isAnObject(param)) {
return !Object.keys(param).length;
}
return !param;
}
console.log('Is empty Array: ',isEmpty([]));
console.log('Is empty Array: ',isEmpty([1,2,3]));
console.log('Is empty Object: ',isEmpty({}));
console.log('Is empty Object: ',isEmpty({a: 'I am not empty'}));
console.log('Is empty String: ',isEmpty(''));
console.log('Is empty String: ',isEmpty('I am string'));
console.log('Is empty Number: ',isEmpty(NaN));
console.log('Is empty Number: ',isEmpty(100));
console.log('Is empty String parse as number: ',isEmpty(parseInt('')));
我创建了一个函数并将其命名为 isEmpty
。如果传递的参数为空,此函数将 return 为真,否则为假。
大部分"empty"的东西在JS中都是falsy,所以可以简化为:
const isEmpty = thing => typeof thing === "object" ? !thing || !Object.keys(thing).length : !thing && thing !== 0;
以下解决方案适合我。
let code = (function(){
return {
isEmpty: function(param){
return typeof param === "object" ? !param || !Object.keys(param).length : !param && param !== 0;
}
}
})();
let jqcc = (function(){
var checkEmptyValues = function(param) {
if (param == null) {
return false;
}
if (Array.isArray(param)) {
return !param.length;
}
if (param.constructor.name.toLowerCase() === "object") {
return !Object.keys(param).length;
}
return !param;
}
return {
isEmpty: function(param){
return checkEmptyValues(param);
}
}
})();
console.log(jqcc.isEmpty([]));
我需要检查输入参数是否为空,就像 php empty
函数一样。
例如,如果我有名称为 isEmpty
的函数,并且我将 string
作为参数传递给它,那么函数将 return true
如果字符串为空,否则 false
和类似的其他数据类型,如 Object
、Array
和 Number
.
let isEmpty = param => {
let isAnObject = (obj) => {
if (obj == null) return false;
return obj.constructor.name.toLowerCase() === "object"
}
if (Array.isArray(param)) {
return !param.length;
}
if (isAnObject(param)) {
return !Object.keys(param).length;
}
return !param;
}
console.log('Is empty Array: ',isEmpty([]));
console.log('Is empty Array: ',isEmpty([1,2,3]));
console.log('Is empty Object: ',isEmpty({}));
console.log('Is empty Object: ',isEmpty({a: 'I am not empty'}));
console.log('Is empty String: ',isEmpty(''));
console.log('Is empty String: ',isEmpty('I am string'));
console.log('Is empty Number: ',isEmpty(NaN));
console.log('Is empty Number: ',isEmpty(100));
console.log('Is empty String parse as number: ',isEmpty(parseInt('')));
我创建了一个函数并将其命名为 isEmpty
。如果传递的参数为空,此函数将 return 为真,否则为假。
大部分"empty"的东西在JS中都是falsy,所以可以简化为:
const isEmpty = thing => typeof thing === "object" ? !thing || !Object.keys(thing).length : !thing && thing !== 0;
以下解决方案适合我。
let code = (function(){
return {
isEmpty: function(param){
return typeof param === "object" ? !param || !Object.keys(param).length : !param && param !== 0;
}
}
})();
let jqcc = (function(){
var checkEmptyValues = function(param) {
if (param == null) {
return false;
}
if (Array.isArray(param)) {
return !param.length;
}
if (param.constructor.name.toLowerCase() === "object") {
return !Object.keys(param).length;
}
return !param;
}
return {
isEmpty: function(param){
return checkEmptyValues(param);
}
}
})();
console.log(jqcc.isEmpty([]));