Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Lodash: _.isBlank?

I'm looking for a way to test a value. I'd like it to behave this way:

_.isBlank(undefined) : true
_.isBlank(null) : true
_.isBlank(NaN) : true
_.isBlank('') : true
_.isBlank('a') : false
_.isBlank(0) : false
_.isBlank(1) : false
_.isBlank({}) : true
_.isBlank([]) : true
_.isBlank({foo: 'bar'}) : false
_.isBlank(['foo', 'bar']) : false

There is _.isNil, but _.isNil('') is false. _.isEmpty sounded promising but _.isEmpty(0) is true. Of course, I could combine several tests together, but it would be cleaner to have it out-of-the-box, wouldn't it?

like image 541
Augustin Riedinger Avatar asked Apr 18 '16 10:04

Augustin Riedinger


1 Answers

There is no method in Lodash for your specific case.

You have to make a function if you want to translate your intention:

function isBlank(value) {
    return _.isEmpty(value) && !_.isNumber(value) || _.isNaN(value);
}

Results:

isBlank(undefined)
// => true

isBlank(null)
// => true

isBlank('')
// => true

isBlank([])
// => true

isBlank({})
// => true

isBlank(NaN)
// => true

isBlank(0)
// => false
like image 112
GG. Avatar answered Oct 15 '22 11:10

GG.