1. JavaScript / Говнокод #11724

    +162

    1. 1
    $.evalJSON($.toJSON(origArray));

    Клонирование массива.
    http://stackoverflow.com/a/3409342

    Запостил: Yurik, 07 Сентября 2012

    Комментарии (4) RSS

    • Если мне не изменяет память, превращение массива в строку и обратно - в 1с 7.7 было быстрее, нежели построчное копирование в цикле. Надо бы ещё сравнить со стандартной функцией выгрузки.
      Ответить
    • Тут еще фишка в том, что все ссылки у объектов внутри копируемого массива будут копироваться по значению. Если там было что-то типа:
      var foo = {};
      foo.foo = foo;

      Тогда хз что случиться, переполнение стека скорее всего, но может и что-то другое.
      Так же нельзя скопировать функции с захвачеными переменными.
      Ответить
      • Встроенный JSON.stringify() пошлёт нах*й. Мне в своё время пришлось свою реализацию написать с анализом рекурсий.
        Ответить
    • условное такое клонирование - только если данные
      Ответить

    Добавить комментарий