has-value NPM version NPM downloads Build Status

Returns true if a value exists, false if empty. Works with deeply nested values using object paths.

Install

Install with npm:

$ 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:

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:

function isEmpty(o, isZero) {
  return !hasValue.apply(hasValue, arguments);
}

Related projects

You might also be interested in these projects:

  • get-object: Get a property from an object using dot (object path) notation. | homepage
  • get-property: Get a nested property or its value from an object using simple a.b.c paths. | homepage
  • get-value: Use property paths (a.b.c) to get a nested value from an object. | homepage
  • set-value: Create nested values and any intermediaries using dot notation ('a.b.c') paths. | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

Generate readme and API documentation with verb:

$ npm install verb && npm run docs

Or, if verb is installed globally:

$ verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb, v, on March 27, 2016.