locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
36 lines (35 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.empty = empty;
function empty(mixedVar) {
// discuss at: https://locutus.io/php/empty/
// original by: Philippe Baumann
// input by: Onno Marsman (https://twitter.com/onnomarsman)
// input by: LH
// input by: Stoyan Kyosev (https://www.svest.org/)
// bugfixed by: Kevin van Zonneveld (https://kvz.io)
// improved by: Onno Marsman (https://twitter.com/onnomarsman)
// improved by: Francesco
// improved by: Marc Jansen
// improved by: Rafał Kukawski (https://blog.kukawski.pl)
// example 1: empty(null)
// returns 1: true
// example 2: empty(undefined)
// returns 2: true
// example 3: empty([])
// returns 3: true
// example 4: empty({})
// returns 4: true
// example 5: empty({'aFunc' : function () { alert('humpty'); } })
// returns 5: false
const emptyValues = [undefined, null, false, 0, '', '0'];
for (const emptyValue of emptyValues) {
if (mixedVar === emptyValue) {
return true;
}
}
if (typeof mixedVar === 'object' && mixedVar !== null) {
return Object.keys(mixedVar).length === 0;
}
return false;
}