node package manager



vals is a utility library for extracting property values from an object with support for safe nested property lookup.

stability 3 - stable license - Unlicense Flattr this

browser support

Build Status Coverage Status Dependencies

NPM status



With NPM

npm install vals

From source

git clone
cd vals
npm install


With component

component install pluma/vals

Learn more about component.

With bower

bower install vals

Learn more about bower.

With a CommonJS module loader

Download the latest minified CommonJS release and add it to your project.

Learn more about CommonJS modules.

With an AMD module loader

Download the latest minified AMD release and add it to your project.

Learn more about AMD modules.

As a standalone library

Download the latest minified standalone release and add it to your project.

<script src="/your/js/path/vals.globals.min.js"></script>

This makes the vals module available in the global namespace.

Basic usage example

var vals = require('vals');
var obj1 = {a: 'one', b: 'two', c: 'three'};
vals(obj1, 'a', 'b'); // ['one', 'two'] 
var obj2 = {foo: {bar: {qux: 'one', baz: 'two'}}};
vals(obj2, ['foo', 'bar', 'qux']); // ['one'], ['foo', 'bar', 'qux']); // 'one' 
vals(obj2, ['fail', 'bar', 'qux']); // [undefined] 
var obj3 = undefined;
vals(obj3, 'foo', ['bar', 'qux']); // [undefined, undefined], 'foo'); // undefined 


vals(obj, paths…):Array

Extracts the property values at each given property path as an array., path):*

Attempts to extract the property value at the given property path.

If path is an array, it will attempt to resolve the property path recursively.

If the path can not be resolved fully, the return value will be undefined.


This is free and unencumbered public domain software. For more information, see or the accompanying UNLICENSE file.