node package manager

lodash-deep

Lodash mixins for (deep) object accessing / manipulation.

lodash-deep

Lodash mixins for (deep) object accessing / manipulation.

In 2.0 most of the methods of this module where removed, because Lodash now supports their functionality natively. E.g.:

_.deepGet(object, 'father.name');
// -> 
_.get(object, 'father.name');
 
_.deepPluck(array, 'father.name');
// -> 
_.map(array, 'father.name');

lodash-deep is currently compatible with:

  • Node.js
  • All ES5 compatible browsers (IE9+, Chrome, Firefox, Safari etc)
  1. bower install lodash-deep
  2. Reference lodash-deep.min.js after lodash.min.js
  1. npm install lodash
  2. npm install lodash-deep
  3.  
    var _ = require("lodash");
    _.mixin(require("lodash-deep"));

The following mixins are included in lodash-deep:

Maps all values in an object tree and returns a new object with the same structure as the original.

Type: Object

The root object of the object tree.

Type: Function

The function to be called per iteration on any non-object value in the tree.

Callback is invoked with 2 arguments: (value, path).

value the value of the current property.

path the path of the current property.

Type: Object

var object = {
    level1: {
        value: 'value 1'
        level2: {
            value: 'value 2'
            level3: {
                value: 'value 3'
            }
        }
    }
};
 
_.deepMapValues(object, function(valuepath){
    return path + ' is ' + value)
});
 
/** ->
 *    {
 *        level1: {
 *            value: 'level1.value is value 1'
 *            level2: {
 *                value: 'level1.level2.value is value 2'
 *                level3: {
 *                    value: 'level1.level2.level3.value is value 3'
 *                }
 *            }
 *        }
 *    };
 */

Please use the canary branch when creating a pull request.