deep
is a utility function for traversing properties on objects and arrays.
If an intermediate property is either null or undefined, it is instead returned. The purpose of this function is to simplify extracting properties from a chain of maybe-typed properties.
This module exists as a stop-gap solution because JavaScript does not currently support optional chaining.
Simpler, smaller and faster than lodash/get , facebook's idx and rambda methods. Also f*ck underscore/propertyOf.
npm install deepdrain
yarn add deepdrain
deep(obj, path, defaultValue)
obj: Object | Array
path: Array
defaultValue: any
var deep = require('deepdrain')
var obj = {
animal: {
cat: ['meow', 'miau', 'nya-ong', 'meu'],
dog: 'woof'
}
}
deep(obj, ['animal', 'cat', '2'])
// nya-ong
deep(obj, ['animal', 'age'], 5)
// 5