Показать сообщение отдельно
  #1 (permalink)  
Старый 01.03.2015, 22:17
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

RecursiveIterator / Рекурсивный итератор
В продолжении темы 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

Последний раз редактировалось nerv_, 04.03.2015 в 19:51.
Ответить с цитированием