{"maintainers":[{"name":"nerv","email":"nervgh@gmail.com"}],"keywords":["js","javascript","walk","walker","recursive","recursion","iterator","iteratate","traverse","traversing","object","tree","json"],"dist-tags":{"latest":"2.0.3"},"author":{"name":"nerv","url":"https://github.com/nervgh"},"description":"It iterates anything. The Recursive Iterator supports: ES5/ES6 environments, the ES6 iteration protocols","readme":"# Recursive Iterator\n\n## About\nIt iterates anything. The Recursive Iterator supports: ES5/ES6 environments, the ES6 [iteration protocols](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) / [for...of](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) cycle.\n\n## Required\nES5\n\n## Getting started\n\n### Quick overview (es6)\n```js\nvar iterator = new RecursiveIterator(\n    root /*{Object|Array}*/,\n    [bypassMode=0] /*{Number}*/,\n    [ignoreCircular=false] /*{Boolean}*/,\n    [maxDeep=100] /*{Number}*/\n);\n\nvar {value, done} = iterator.next();\nvar {parent, node, key, path, deep} = value;\n\n// parent is parent node\n// node is current node\n// key is key of node\n// path is path to node\n// deep is current deep\n```\n\n### Example (es6)\n```js\nvar root = {\n    object: {\n        number: 1\n    },\n    string: 'foo'\n};\n\nfor(let {node, path} of new RecursiveIterator(root)) {\n    console.log(path.join('.'), node);\n}\n\n// object    Object {number: 1}\n// object.number    1\n// string    foo\n```\n\n## Roadmap\n* [Syntax](https://github.com/nervgh/recursive-iterator/wiki/Syntax)\n    * [ES6](https://github.com/nervgh/recursive-iterator/wiki/Syntax#es6)\n    * [ES5](https://github.com/nervgh/recursive-iterator/wiki/Syntax#es5)\n* API\n    * [Options](https://github.com/nervgh/recursive-iterator/wiki/Options)\n    * [Methods & Callbacks](https://github.com/nervgh/recursive-iterator/wiki/Methods-&-Callbacks)\n* [Cookbook (es6)](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6))\n    * [Iterator (not recursive)](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6)#iterator-not-recursive)\n    * [DomIterator](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6)#domiterator)\n    * [Deep copy / Deep clone](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6)#deep-copy--deep-clone)\n    * [To Query String](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6)#to-query-string)\n    * [To Form Data](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6)#to-form-data)\n    * [Uninformed search algorithms](https://github.com/nervgh/recursive-iterator/wiki/Cookbook-(es6)#uninformed-search-algorithms)\n\n\n## Package managers\n### Bower\n```\nbower install recursive-iterator\n```\nYou could find this module in bower like [_recursive iterator_](http://bower.io/search/?q=recursive%20iterator).\n\n### NPM\n```\nnpm install recursive-iterator\n```\nYou could find this module in npm like [_recursive iterator_](https://www.npmjs.com/search?q=recursive+iterator).\n","repository":{"type":"git","url":"git+https://github.com/nervgh/recursive-iterator.git"},"bugs":{"url":"https://github.com/nervgh/recursive-iterator/issues"},"license":"MIT","versions":{"1.0.0":{"name":"recursive-iterator","version":"1.0.0","description":"Iterates javascript object recursively. Supports ES6 iteration protocols.","homepage":"https://github.com/nervgh/recursive-iterator","license":"MIT","main":"dist/recursive-iterator.min.js","repository":{"type":"git","url":"https://github.com/nervgh/recursive-iterator.git"},"keywords":["js","javascript","walk","walker","recursive","recursion","iterator","iteratate","traverse","traversing","object","tree","json"],"author":{"name":"nerv","url":"https://github.com/nervgh"},"devDependencies":{"grunt-babel":"^4.0.0","grunt-contrib-copy":"^0.7.0","grunt-contrib-clean":"^0.6.0","grunt-contrib-watch":"^0.6.1","grunt-contrib-uglify":"^0.2.1","grunt-karma":"^0.9.0","grunt-umd":"^2.3.2","karma-jasmine":"^0.1.5","karma-phantomjs-launcher":"^0.1.4","load-grunt-tasks":"^3.1.0"},"gitHead":"359a160144fea5c9a8f6309bfdfa9d3733667f82","bugs":{"url":"https://github.com/nervgh/recursive-iterator/issues"},"_id":"recursive-iterator@1.0.0","scripts":{},"_shasum":"cb36aa725bbaa08452504266474119869d907d9d","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"nerv","email":"nervgh@gmail.com"},"maintainers":[{"name":"nerv","email":"nervgh@gmail.com"}],"dist":{"shasum":"cb36aa725bbaa08452504266474119869d907d9d","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/recursive-iterator/-/recursive-iterator-1.0.0.tgz"},"directories":{}},"2.0.0":{"name":"recursive-iterator","version":"2.0.0","description":"Iterates javascript object recursively. Supports ES6 iteration protocols.","homepage":"https://github.com/nervgh/recursive-iterator","license":"MIT","main":"dist/recursive-iterator.min.js","repository":{"type":"git","url":"git+https://github.com/nervgh/recursive-iterator.git"},"keywords":["js","javascript","walk","walker","recursive","recursion","iterator","iteratate","traverse","traversing","object","tree","json"],"author":{"name":"nerv","url":"https://github.com/nervgh"},"devDependencies":{"babel":"^4.7.16","babel-loader":"^4.0.0","grunt-contrib-clean":"^0.6.0","grunt-contrib-watch":"^0.6.1","grunt-karma":"^0.9.0","grunt-webpack":"^1.0.8","karma-jasmine":"^0.1.5","karma-phantomjs-launcher":"^0.1.4","load-grunt-tasks":"^3.1.0"},"gitHead":"6a9269c3908dc1e28f815065a8c877e6471e46fd","bugs":{"url":"https://github.com/nervgh/recursive-iterator/issues"},"_id":"recursive-iterator@2.0.0","scripts":{},"_shasum":"1a0fa1e365a482a8a0bbb775be4023e88620c83b","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"nerv","email":"nervgh@gmail.com"},"maintainers":[{"name":"nerv","email":"nervgh@gmail.com"}],"dist":{"shasum":"1a0fa1e365a482a8a0bbb775be4023e88620c83b","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/recursive-iterator/-/recursive-iterator-2.0.0.tgz"},"directories":{}},"2.0.1":{"name":"recursive-iterator","version":"2.0.1","description":"Iterates javascript object recursively. Supports ES6 iteration protocols.","homepage":"https://github.com/nervgh/recursive-iterator","license":"MIT","main":"dist/recursive-iterator.min.js","repository":{"type":"git","url":"git+https://github.com/nervgh/recursive-iterator.git"},"keywords":["js","javascript","walk","walker","recursive","recursion","iterator","iteratate","traverse","traversing","object","tree","json"],"author":{"name":"nerv","url":"https://github.com/nervgh"},"engines":{"node":">=6.0.0"},"devDependencies":{"babel":"~4.7.16","babel-core":"~4.0.0","babel-loader":"~4.0.0","gulp":"~3.9.1","jasmine":"~2.4.1","karma":"~1.2.0","karma-jasmine":"~1.0.2","karma-phantomjs-launcher":"~1.0.1","phantomjs":"~1.9.20","webpack":"~1.13.1","webpack-stream":"~3.2.0"},"gitHead":"bca99b4710a64942471b4ed185b419af9326963f","bugs":{"url":"https://github.com/nervgh/recursive-iterator/issues"},"_id":"recursive-iterator@2.0.1","scripts":{},"_shasum":"fcc34eb0e7e7d24586beae8c0880566fa40872be","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"nerv","email":"nervgh@gmail.com"},"dist":{"shasum":"fcc34eb0e7e7d24586beae8c0880566fa40872be","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/recursive-iterator/-/recursive-iterator-2.0.1.tgz"},"maintainers":[{"name":"nerv","email":"nervgh@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/recursive-iterator-2.0.1.tgz_1471422243782_0.7126974014099687"},"directories":{}},"2.0.2":{"name":"recursive-iterator","version":"2.0.2","description":"Iterates javascript object recursively. Supports ES6 iteration protocols.","homepage":"https://github.com/nervgh/recursive-iterator","license":"MIT","main":"dist/recursive-iterator.js","repository":{"type":"git","url":"git+https://github.com/nervgh/recursive-iterator.git"},"keywords":["js","javascript","walk","walker","recursive","recursion","iterator","iteratate","traverse","traversing","object","tree","json"],"author":{"name":"nerv","url":"https://github.com/nervgh"},"devDependencies":{"babel":"~4.7.16","babel-core":"~4.0.0","babel-loader":"~4.0.0","gulp":"~3.9.1","jasmine":"~2.4.1","karma":"~1.2.0","karma-jasmine":"~1.0.2","karma-phantomjs-launcher":"~1.0.1","phantomjs":"~1.9.20","webpack":"~1.13.1","webpack-stream":"~3.2.0"},"gitHead":"b0f0be8b575c12e4c19f3dffaab2f84513ec68dd","bugs":{"url":"https://github.com/nervgh/recursive-iterator/issues"},"_id":"recursive-iterator@2.0.2","scripts":{},"_shasum":"14099ae9caaa4d4f98faad1d53dbd416974d4025","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"nerv","email":"nervgh@gmail.com"},"dist":{"shasum":"14099ae9caaa4d4f98faad1d53dbd416974d4025","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/recursive-iterator/-/recursive-iterator-2.0.2.tgz"},"maintainers":[{"name":"nerv","email":"nervgh@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/recursive-iterator-2.0.2.tgz_1477028092070_0.37840803898870945"},"directories":{}},"2.0.3":{"name":"recursive-iterator","version":"2.0.3","description":"It iterates anything. The Recursive Iterator supports: ES5/ES6 environments, the ES6 iteration protocols","homepage":"https://github.com/nervgh/recursive-iterator","license":"MIT","main":"dist/recursive-iterator.js","repository":{"type":"git","url":"git+https://github.com/nervgh/recursive-iterator.git"},"keywords":["js","javascript","walk","walker","recursive","recursion","iterator","iteratate","traverse","traversing","object","tree","json"],"author":{"name":"nerv","url":"https://github.com/nervgh"},"devDependencies":{"babel":"~4.7.16","babel-core":"~4.0.0","babel-loader":"~4.0.0","gulp":"~3.9.1","jasmine":"~2.4.1","karma":"~1.2.0","karma-jasmine":"~1.0.2","karma-phantomjs-launcher":"~1.0.1","phantomjs":"~1.9.20","webpack":"~1.13.1","webpack-stream":"~3.2.0"},"gitHead":"710b72c55b6950bba9547290126c5a23e6a0c0d2","bugs":{"url":"https://github.com/nervgh/recursive-iterator/issues"},"_id":"recursive-iterator@2.0.3","scripts":{},"_shasum":"d0e0d2c7e7a83109d73091cf043fc509e5a76dc3","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"nerv","email":"nervgh@gmail.com"},"dist":{"shasum":"d0e0d2c7e7a83109d73091cf043fc509e5a76dc3","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/recursive-iterator/-/recursive-iterator-2.0.3.tgz"},"maintainers":[{"name":"nerv","email":"nervgh@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/recursive-iterator-2.0.3.tgz_1477029444722_0.16579424566589296"},"directories":{}}},"name":"recursive-iterator","time":{"modified":"2016-10-21T05:57:25.594Z","created":"2015-03-17T19:58:49.134Z","1.0.0":"2015-03-17T19:58:49.134Z","2.0.0":"2015-08-14T13:33:42.294Z","2.0.1":"2016-08-17T08:24:05.486Z","2.0.2":"2016-10-21T05:34:53.881Z","2.0.3":"2016-10-21T05:57:25.594Z"},"readmeFilename":"README.md","homepage":"https://github.com/nervgh/recursive-iterator"}