README.md
1 # has-values [](https://www.npmjs.com/package/has-values) [](https://npmjs.org/package/has-values) [](https://npmjs.org/package/has-values) [](https://travis-ci.org/jonschlinkert/has-values) 2 3 > Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. 4 5 ## Install 6 7 Install with [npm](https://www.npmjs.com/): 8 9 ```sh 10 $ npm install --save has-values 11 ``` 12 13 ## Usage 14 15 ```js 16 var hasValue = require('has-values'); 17 18 hasValue('a'); 19 //=> true 20 21 hasValue(''); 22 //=> false 23 24 hasValue(1); 25 //=> true 26 27 hasValue(0); 28 //=> false 29 30 hasValue({a: 'a'}}); 31 //=> true 32 33 hasValue({}); 34 hasValue({foo: undefined}); 35 //=> false 36 37 hasValue({foo: null}); 38 //=> true 39 40 hasValue(['a']); 41 //=> true 42 43 hasValue([]); 44 hasValue([[], []]); 45 hasValue([[[]]]); 46 //=> false 47 48 hasValue(['foo']); 49 hasValue([0]); 50 //=> true 51 52 hasValue(function(foo) {}); 53 //=> true 54 55 hasValue(function() {}); 56 //=> true 57 58 hasValue(true); 59 //=> true 60 61 hasValue(false); 62 //=> true 63 ``` 64 65 ## isEmpty 66 67 To test for empty values, do: 68 69 ```js 70 function isEmpty(o, isZero) { 71 return !hasValue(o, isZero); 72 } 73 ``` 74 75 ## Release history 76 77 ### v1.0.0 78 79 * `zero` always returns true 80 * `array` now recurses, so that an array of empty arrays will return `false` 81 * `null` now returns true 82 83 ## About 84 85 ### Related projects 86 87 * [has-value](https://www.npmjs.com/package/has-value): Returns true if a value exists, false if empty. Works with deeply nested values using… [more](https://github.com/jonschlinkert/has-value) | [homepage](https://github.com/jonschlinkert/has-value "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.") 88 * [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.") 89 * [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") 90 * [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") 91 * [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") 92 93 ### Contributing 94 95 Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). 96 97 ### Building docs 98 99 _(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ 100 101 To generate the readme, run the following command: 102 103 ```sh 104 $ npm install -g verbose/verb#dev verb-generate-readme && verb 105 ``` 106 107 ### Running tests 108 109 Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: 110 111 ```sh 112 $ npm install && npm test 113 ``` 114 115 ### Author 116 117 **Jon Schlinkert** 118 119 * [github/jonschlinkert](https://github.com/jonschlinkert) 120 * [twitter/jonschlinkert](https://twitter.com/jonschlinkert) 121 122 ### License 123 124 Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). 125 Released under the [MIT License](LICENSE). 126 127 *** 128 129 _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._