123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- # has-value [](https://www.npmjs.com/package/has-value) [](https://npmjs.org/package/has-value) [](https://travis-ci.org/jonschlinkert/has-value)
- > Returns true if a value exists, false if empty. Works with deeply nested values using object paths.
- ## Install
- Install with [npm](https://www.npmjs.com/):
- ```sh
- $ npm install has-value --save
- ```
- **Works for:**
- * booleans
- * functions
- * numbers (pass `true` as the last arg to treat zero as a value instead of falsey)
- * strings
- * nulls
- * object
- * arrays
- ## Usage
- Works with nested object paths or a single value:
- ```js
- 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
- ```
- ## isEmpty
- To do the opposite and test for empty values, do:
- ```js
- function isEmpty(o, isZero) {
- return !hasValue.apply(hasValue, arguments);
- }
- ```
- ## Related projects
- You might also be interested in these projects:
- * [get-object](https://www.npmjs.com/package/get-object): Get a property from an object using dot (object path) notation. | [homepage](https://github.com/jonschlinkert/get-object)
- * [get-property](https://www.npmjs.com/package/get-property): Get a nested property or its value from an object using simple `a.b.c` paths. | [homepage](https://github.com/jonschlinkert/get-property)
- * [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value)
- * [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value)
- ## Contributing
- Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/has-value/issues/new).
- ## Building docs
- Generate readme and API documentation with [verb](https://github.com/verbose/verb):
- ```sh
- $ npm install verb && npm run docs
- ```
- Or, if [verb](https://github.com/verbose/verb) is installed globally:
- ```sh
- $ verb
- ```
- ## Running tests
- Install dev dependencies:
- ```sh
- $ npm install -d && npm test
- ```
- ## Author
- **Jon Schlinkert**
- * [github/jonschlinkert](https://github.com/jonschlinkert)
- * [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
- ## License
- Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
- Released under the [MIT license](https://github.com/jonschlinkert/has-value/blob/master/LICENSE).
- ***
- _This file was generated by [verb](https://github.com/verbose/verb), v, on March 27, 2016._
|