JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 179937
  • Score
    100M100P100Q167696F
  • License MIT

Recursively iterates collection values (arrays and objects)

Package Exports

  • deep-for-each

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (deep-for-each) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

deep-for-each

NPM version Downloads Build Status Dependency status Dev Dependency status

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

Installation

$ npm install deep-for-each - NPM
$ bower install deep-for-each - bower

The browser file is named index.umd.js which supports CommonJS, AMD and globals (deepForEach). If you want to run this module on old browsers, you must include es5-shim.

Usage

The example bellow is based on nodejs.

var deepForEach = require('deep-for-each');

deepForEach({
    prop1: 'foo',
    prop2: ['foo', 'bar'],
    prop3: ['foo', 'foo'],
    prop4: {
        prop5: 'foo',
        prop6: 'bar'
    }
}, function (value, prop, subject, path) {
    // prop is an array index or an object key
    // 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

License

Released under the MIT License.