知食记
搜索文档…
⌃K

JS Empty

判断一个变量是否为空
isEmpty({a: 3, b: 5}) // false
isEmpty([1, 2]) // false
isEmpty(new Set([1, 2, 2])) // false
isEmpty((new Map()).set('a', 2)) // false
isEmpty({}) // true
isEmpty([]) // true
isEmpty(new Set()) // true
isEmpty(new Map()) // true
isEmpty('abc') // false
isEmpty('') // true
isEmpty(0) // true
isEmpty(1) // true
isEmpty(true) // true
isEmpty(Symbol('abc')); // true
isEmpty(//); // true
isEmpty(new String('abc')); // false
isEmpty(new String('')); // true
isEmpty(new Boolean(true)); // true
isEmpty(null) // true
isEmpty(undefined) // true
实现
function isEmpty(obj) {
if (obj == null) {
return true;
}
if (Array.isArray(obj)) {
return !obj.length;
}
if (typeof obj == 'string') {
return !obj.length;
}
var type = {}.toString.call(obj);
if (type == '[object Object]') {
return !Object.keys(obj).length;
}
if (type == '[object Map]' || type == '[object Set]') {
return !obj.size;
}
// other primitive || unidentifed object type
return Object(obj) !== obj || !Object.keys(obj).length;
}