1 # has-values [![NPM version](https://img.shields.io/npm/v/has-values.svg?style=flat)](https://www.npmjs.com/package/has-values) [![NPM monthly downloads](https://img.shields.io/npm/dm/has-values.svg?style=flat)](https://npmjs.org/package/has-values) [![NPM total downloads](https://img.shields.io/npm/dt/has-values.svg?style=flat)](https://npmjs.org/package/has-values) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/has-values.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/has-values)
3 > Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays.
7 Install with [npm](https://www.npmjs.com/):
10 $ npm install --save has-values
16 var hasValue = require('has-values');
34 hasValue({foo: undefined});
37 hasValue({foo: null});
52 hasValue(function(foo) {});
55 hasValue(function() {});
67 To test for empty values, do:
70 function isEmpty(o, isZero) {
71 return !hasValue(o, isZero);
79 * `zero` always returns true
80 * `array` now recurses, so that an array of empty arrays will return `false`
81 * `null` now returns true
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.")
95 Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
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.)_
101 To generate the readme, run the following command:
104 $ npm install -g verbose/verb#dev verb-generate-readme && verb
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:
112 $ npm install && npm test
119 * [github/jonschlinkert](https://github.com/jonschlinkert)
120 * [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
124 Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
125 Released under the [MIT License](LICENSE).
129 _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._