我正在寻找一种测试值(value)的方法。我希望它的行为如下:

_.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

_.isNil,但_.isNil('')为false。 _.isEmpty听起来很有希望,但_.isEmpty(0)true
当然,我可以将多个测试结合在一起,但是开箱即用会更清洁,不是吗?

最佳答案

Lodash中没有针对您的特定情况的方法。

如果要翻译您的意图,则必须执行一个函数:

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

结果:
isBlank(undefined)
// => true

isBlank(null)
// => true

isBlank('')
// => true

isBlank([])
// => true

isBlank({})
// => true

isBlank(NaN)
// => true

isBlank(0)
// => false

关于javascript - Lodash:_。isBlank?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36691125/

10-12 02:28