В продолжении темы
Object.traverse() запилил рекурсивный итератор.
https://github.com/nervgh/recursive-iterator
Можно использовать как в ES5, так и в ES6 окружениях.
При использовании в ES6:
- поддерживает ES6
итерационные протоколы
- совместим с
for...of циклом
Пример на es6:
var root = {
object: {
number: 1
},
string: 'foo'
};
for(let item of new RecursiveIterator(root)) {
console.log(item.path.join('.'), item.node);
}
// or
for(let {parent, node, key, path, deep} of new RecursiveIterator(root)) {
console.log(path.join('.'), node);
}
// or
for(let {node, path} of new RecursiveIterator(root, 1)) {
console.log(path.join('.'), node);
}
Больше инфы
здесь
Теги: js, javascript, walk, walker, recursive, recursion, iterator, iteratate, traverse, traversing, object, tree, json