lodash:_.isBlank?
Lodash: _.isBlank?
我正在寻找一种测试值的方法。我希望它以这种方式运行:
_.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('')
为假。 _.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
我正在寻找一种测试值的方法。我希望它以这种方式运行:
_.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('')
为假。 _.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