Skip to content

Recursively iterates over collections arrays and objects

License

Notifications You must be signed in to change notification settings

moxystudio/js-deep-for-each

Folders and files

NameName
Last commit message
Last commit date

Latest commit

11db952 · Dec 15, 2020

History

78 Commits
Dec 15, 2020
Mar 13, 2019
Mar 13, 2019
Jan 2, 2016
Mar 13, 2019
Mar 13, 2019
Jan 23, 2018
Mar 13, 2019
Jan 23, 2018
Nov 24, 2019
Dec 14, 2020
Dec 14, 2020

Repository files navigation

deep-for-each

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

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

Installation

$ npm install deep-for-each

This library is written in modern JavaScript and is published in both CommonJS and ES module transpiled variants. If you target older browsers please make sure to transpile accordingly.

Usage

import deepForEach from 'deep-for-each';

deepForEach({
    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

Tests

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

License

Released under the MIT License.