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));
Install
npm install get-nested-value --save
yarn add get-nested-value
Example
import getNestedValue from 'get-nested-value';
getNestedValue('some.path.to.key', object);
getNestedValue(['some', 'path', 'to', 'key'], object);
getNestedValue(['some', 'path', 'atIndex', 0, 'key'], object);
getNestedValue([0, 1, 2, 'key'], arrayOfArrays);
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 or test.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 an Object
or Array
. But this will not throw an Error.