Returns true if a value exists, false if empty. Works with deeply nested values using object paths.
Install with npm:
$ npm install has-value --save
Works for:
true
as the last arg to treat zero as a value instead of falsey)Works with nested object paths or a single value:
var hasValue = require('has-value');
hasValue({a: {b: {c: 'foo'}}} 'a.b.c');
//=> true
hasValue('a');
//=> true
hasValue('');
//=> false
hasValue(1);
//=> true
hasValue(0);
//=> false
hasValue(0, true); // pass `true` as the last arg to treat zero as a value
//=> true
hasValue({a: 'a'}});
//=> true
hasValue({}});
//=> false
hasValue(['a']);
//=> true
hasValue([]);
//=> false
hasValue(function(foo) {}); // function length/arity
//=> true
hasValue(function() {});
//=> false
hasValue(true);
hasValue(false);
//=> true
To do the opposite and test for empty values, do:
function isEmpty(o, isZero) {
return !hasValue.apply(hasValue, arguments);
}
You might also be interested in these projects:
a.b.c
paths. | homepagea.b.c
) to get a nested value from an object. | homepage'a.b.c'
) paths. | homepagePull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Install dev dependencies:
$ npm install -d && npm test
Jon Schlinkert
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
This file was generated by verb, v, on March 27, 2016.