Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.03.2015, 11:43
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
kobezzza, зарегай свои наработки в npm & bower для продвижения (если еще этого не сделал.) и напиши про это в readme
Дык, они 100 лет уже там
__________________
kobezzza
code monkey
Ответить с цитированием
  #12 (permalink)  
Старый 05.03.2015, 15:01
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от kobezzza
upd: глянул доку, так и есть - это просто istanbul + babel
а в результатах покрытия чистый код на ES6, а не результат babel
Ответить с цитированием
  #13 (permalink)  
Старый 05.03.2015, 15:23
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от melky Посмотреть сообщение
а в результатах покрытия чистый код на ES6, а не результат babel
Хм, надо глянуть.
__________________
kobezzza
code monkey
Ответить с цитированием
  #14 (permalink)  
Старый 05.03.2015, 17:20
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от kobezzza Посмотреть сообщение
Хм, надо глянуть.
preLoader для webpack
isparta-instrumenter-loader
Ответить с цитированием
  #15 (permalink)  
Старый 12.03.2015, 16:35
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Что там есть. Но я ничего не понял. Попроще для таких как я(слесарь ремонтник больших металлорежущиж станков).
Ответить с цитированием
  #16 (permalink)  
Старый 14.03.2015, 09:58
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Упрощенный пример глубокого копирования (клонирования) объекта (он же в песоцнице):
var toString = Object.prototype.toString;
var isObject = RecursiveIterator.isObject;

/**
 * @param {*} any
 * @returns {String}
 */
function getType(any) {
    return toString.call(any).slice(8, -1);
}

/**
 * @param {*} any
 * @returns {*}
 */
function shallowCopy(any) {
    var type = getType(any);
    switch (type) {
        case 'Object':
            return {};
        case 'Array':
            return [];
        case 'Date':
            return new Date(any);
        case 'RegExp':
            return new RegExp(any);
        case 'Number':
        case 'String':
        case 'Boolean':
        case 'Undefined':
        case 'Null':
            return any;
        default:
            return any.toString();
    }
}

/**
 * @param {*} any
 * @param {Boolean} [deep]
 * @returns {*}
 */
function copy(any, deep = false) {
    if (!deep || !isObject(any)) {
        return shallowCopy(any);
    }

    var map = new Map();
    var rootNode = shallowCopy(any);
    map.set(any, rootNode);

    for(var {parent, node, key} of new RecursiveIterator(any, 1, true)) {
        var parentNode = map.get(parent);
        var cloneNode = shallowCopy(node);
        parentNode[key] = cloneNode;
        map.set(node, cloneNode);
    }

    map.clear();

    return rootNode;
}

// ---------------------------------
// USAGE
// ---------------------------------

var some = {
    foo: {
        bar: 1
    }
};

var clone = copy(some, true);
alert(JSON.stringify(clone));
alert(clone === some);

Если немного настроить, можно задавать глубину копирования, копировать с циклическими ссылками и пр.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

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

Превращаем рекурсивный итератор в простой итератор
import RecursiveIterator from 'your_path';

class Iterator extends RecursiveIterator {
    constructor(iterable) {
        super(iterable, 1, false, 1);
    }
}

итерируем

import Iterator from 'your_path';


for(let {node, key} of new Iterator([1, 2, 3])) {
    console.log(node);
}

for(let {node, key} of new Iterator(document.getElementsByTagName('h1'))) {
    console.log(node, key);
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #18 (permalink)  
Старый 31.05.2015, 20:10
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Обновил до версии 1.3

* еще больше сжатия в min версии
* утилиты вынесены в отдельные модули
* добавлена карта документации (сама дока переехала в вики)
* добавлена книга рецептов

Отдельно хотелось бы сказать про рецепт DomIterator, который показывает, как на основе {RecursiveIterator} создавать любой необходимый вам итератор, подтверждая простоту, лаконичность и расширяемость {RecursiveIterator}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #19 (permalink)  
Старый 31.05.2015, 23:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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

Обновил до версии 2.0

- удалено несколько лишних вычислений на этапе инициализации (создание итератора теперь обходиться очень дешево)
- переименовано пару методов (дабы внести очевидность); изменены аргументы одного метода (объект вместо списка) Апи почти стабилизировалось
- добавлены примеры реализации алгоритмов неинформированного поиска на базе рекурсивного итератора
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Про операторы ветвления der-coder Оффтопик 25 19.06.2014 12:13