NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/util/lib/is-empty.js
2023-09-14 14:47:11 +08:00

38 lines
883 B
JavaScript

var isNil = require('./type/is-nil');
var isArrayLike = require('./type/is-array-like');
var getType = require('./type/get-type');
var isPrototype = require('./type/is-prototype');
var hasOwnProperty = Object.prototype.hasOwnProperty;
function isEmpty(value) {
/**
* isEmpty(null) => true
* isEmpty() => true
* isEmpty(true) => true
* isEmpty(1) => true
* isEmpty([1, 2, 3]) => false
* isEmpty('abc') => false
* isEmpty({ a: 1 }) => false
*/
if (isNil(value)) {
return true;
}
if (isArrayLike(value)) {
return !value.length;
}
var type = getType(value);
if (type === 'Map' || type === 'Set') {
return !value.size;
}
if (isPrototype(value)) {
return !Object.keys(value).length;
}
for (var key in value) {
if (hasOwnProperty.call(value, key)) {
return false;
}
}
return true;
}
module.exports = isEmpty;