Recursively iterates over collections arrays and objects
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


NPM version Downloads Build Status Coverage Status Dependency status Dev Dependency status Greenkeeper badge

Recursively iterates over arrays and objects. The iteration is made using a deep-first algorithm.


$ npm install deep-for-each

This library expects the host environment to be up-to-date or polyfilled with core-js or similar.


import deepForEach from 'deep-for-each';

    prop1: 'foo',
    prop2: ['foo', 'bar'],
    prop3: ['foo', 'foo'],
    prop4: {
        prop5: 'foo',
        prop6: 'bar',
}, (value, key, subject, path) => {
    // `value` is the current property value
    // `key` is the current property name
    // `subject` is either an array or an object
    // `path` is the iteration path, e.g.: 'prop2[0]' and 'prop4.prop5'

    console.log(`${path}:`, value);

Running the example above will print:

prop1: foo
prop2: [ 'foo', 'bar' ]
prop2[0]: foo
prop2[1]: bar
prop3: [ 'foo', 'foo' ]
prop3[0]: foo
prop3[1]: foo
prop4: { prop5: 'foo', prop6: 'bar' }
prop4.prop5: foo
prop4.prop6: bar


$ npm test
$ npm test -- --watch during development


Released under the MIT License.