get-nested-value
v1.0.3
Published
Utility package to get deeply nested values from objects. Support arrays.
Downloads
123
Maintainers
Readme
get-nested-value
This package safely returns the value at a requested path inside of an object. Best used on unpredictable deeply nested structures. Supports arrays as well.
const complex = { a: { b: [{ c: { d: 'hello!' } }] } };
console.log(getNestedValue('a.b.0.c.d', complex));
// => 'hello!'
Install
npm install get-nested-value --save
# or
yarn add get-nested-value
Example
import getNestedValue from 'get-nested-value';
getNestedValue('some.path.to.key', object);
// or as an array of paths
getNestedValue(['some', 'path', 'to', 'key'], object);
// dealing with arrays in your object?
getNestedValue(['some', 'path', 'atIndex', 0, 'key'], object);
// dealing with arrays of arrays?
getNestedValue([0, 1, 2, 'key'], arrayOfArrays);
// see test.js for more examples if needed
Notes
Contract:
getNestedValue(
@path: {Array.<string|number>|String|Number},
@object: {Object|Array}
) => Any, throws Error if @path is invalid
Explained:
- The
@path
must be a number or string, or an array of numbers/strings. (See examples above ortest.js
) - The
@object
should be object or array. The specified paths need not exist obviously. - If the
@path
exists in@object
, then that value is returned. Whatever it might be. - If
@path
does not exist,undefined
is returned. - An
Error
is thrown if@path
is not valid.- You should also make sure the
@object
param is indeed anObject
orArray
. But this will not throw an Error.
- You should also make sure the