Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including lodash-deep with all npm packages installed. Try it out:

var lodashDeep = require("lodash-deep")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

lodash-deep v2.0.0

Lodash mixins for (deep) object accessing / manipulation.


Lodash mixins for (deep) object accessing / manipulation.

Bower version NPM version Build Status Sauce Test Status Dependency Status

Version 2.x

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

_.deepGet(object, '');
// ->
_.get(object, '');

_.deepPluck(array, '');
// ->, '');


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
    var _ = require("lodash");


The following mixins are included in lodash-deep:

_.deepMapValues(object, propertyPath)

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(value, path){
    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.


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free