检查值是否为空类型

时间:2018-02-06 06:12:34

标签: javascript

如果满足下列条件之一,则字段被视为“空”:

  • 值为null
  • 该值为空字符串(""'')。
  • 该值为空数组([])。
  • 值为undefined
  • 该值为空对象({}

false0等值不得视为空。

如何检查值是否为空 例如:

function isEmpty(value){
   //code

   return bool
}

console.log("False Cases:")
console.log(isEmpty('A')) //false
console.log(isEmpty(false)) //false
console.log(isEmpty(true)) //false
console.log(isEmpty(0)) //false
console.log(isEmpty(["test"])) //false
console.log(isEmpty({"test": "test"})) //false
console.log("True Cases:")
console.log(isEmpty({})) //true
console.log(isEmpty('')) // true
console.log(isEmpty(null)) //true
console.log(isEmpty()) //true
console.log(isEmpty([])) //true
console.log(isEmpty(undefined)) //true

修改 我已经包含了必须通过的测试结果

4 个答案:

答案 0 :(得分:2)

你可以简单地检查这样的平等:

const isEmpty = (val) => val === '' || val === null || val === undefined || (Array.isArray(val) && val.length === 0) || JSON.stringify(val) === '{}';

console.log(isEmpty('A'));
console.log(isEmpty(false));
console.log(isEmpty(true));
console.log(isEmpty(0));
console.log(isEmpty(''));
console.log(isEmpty(null));
console.log(isEmpty());
console.log(isEmpty([]));
console.log(isEmpty(undefined));
console.log(isEmpty({}));
console.log(isEmpty({"test":"test"}));
console.log(isEmpty(["test"]));

答案 1 :(得分:1)

您可以使用JSON.stringify( value )并检查结果是undefined'null''[]''{}'还是'""':< / p>

&#13;
&#13;
function isEmpty( value ) {
    return [,'null','[]','{}','""'].includes( JSON.stringify( value ) )
}

console.log( 'True cases: ' );
console.log(isEmpty(''));
console.log(isEmpty(null));
console.log(isEmpty());
console.log(isEmpty([]));
console.log(isEmpty({}));
console.log(isEmpty(undefined));

console.log( '\nFalse cases: ' );
console.log(isEmpty({"test": "test"}));
console.log(isEmpty('A'));
console.log(isEmpty(false));
console.log(isEmpty(true));
console.log(isEmpty(0));
console.log(isEmpty(["test"]));
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您可以将其转换为String(value)但在此之前检查是否nullundefined以避免错误

&#13;
&#13;
function isEmpty(value){
   //code
   return typeof(value) == 'undefined' || value === null || !String(value) || (typeof(value) == 'object' && (!Array.isArray(value) && Object.keys(value) == 0) || (Array.isArray(value) && value.size == 0));
}


console.log("False Cases:")
console.log('A => ' + isEmpty('A'))
console.log('false => ' + isEmpty(false))
console.log('true => ' + isEmpty(true))
console.log('0 => ' + isEmpty(0))
console.log('["test"] => ' + isEmpty(["test"]))
console.log('{"test": "test"} => ' + isEmpty({"test": "test"}))
console.log('{"test": {}} => ' + isEmpty({"test": {}}))
console.log('[false] => ' + isEmpty([false]))
console.log('[true] => ' + isEmpty([true]))
console.log('[{}] => ' + isEmpty([{}]))
console.log("True Cases:")
console.log('{} => ' + isEmpty({})) //true
console.log(' => ' + isEmpty('')) // true
console.log('null => ' + isEmpty(null)) //true
console.log('undefined => ' + isEmpty()) //true
console.log('[] => ' + isEmpty([])) //true
console.log('undefined => ' + isEmpty(undefined)) //true
&#13;
&#13;
&#13;

答案 3 :(得分:0)

尝试此功能:

&#13;
&#13;
function is_empty(value) {
	return (
		value === '' ||
		value === null ||
		value === undefined ||
		(Array.isArray(value) && value.length === 0)
	);
}

console.log(is_empty(null));
console.log(is_empty('string'));
console.log(is_empty([]));
console.log(is_empty(''));
console.log(is_empty(1));
console.log(is_empty());
&#13;
&#13;
&#13;

更新代码试试此

&#13;
&#13;
function isEmpty(value) {
	return (
		value === '' ||
		value === null ||
		value === undefined ||
		(Array.isArray(value) && value.length === 0)||
		(typeof value === "object" && Object.keys(value).length === 0)
	);
}
	
console.log("False Cases:")
console.log(isEmpty('A')) //false
console.log(isEmpty(false)) //false
console.log(isEmpty(true)) //false
console.log(isEmpty(0)) //false
console.log(isEmpty(["test"])) //false
console.log(isEmpty({"test": "test"})) //false
console.log("True Cases:")
console.log(isEmpty({})) //true
console.log(isEmpty('')) // true
console.log(isEmpty(null)) //true
console.log(isEmpty()) //true
console.log(isEmpty([])) //true
console.log(isEmpty(undefined)) //true
&#13;
&#13;
&#13;