Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Collection v5 (https://javascript.ru/forum/project/47717-collection-v5.html)

kobezzza 17.12.2014 02:00

Он использует в примере стратегию for in, хотя по умолчанию для массивов и массиво подобных объектов должен использовать стратегию for, завтра проверю. Только в фантоме такое? Версия Collection последняя?

Стратегию можно задать явно.

https://github.com/kobezzza/Collecti...0%BE%D0%B2#use

$C(tr.children).forEach( function ( elem, i ) {
    console.log( elem, i );
}, {use: 'for'});


Завтра проверю и сделаю фикс, спс.

cyber 17.12.2014 02:13

kobezzza, вроде последнюю версию , дня 3 назад взял с гитхаба, только в фантоме, при запуске того же кода в браузере на той же странице все нормально. {use: 'for'} помогло и такой же баг при работе с другими коллекциями .
подключен файл collection.core.min.js

Использую фантом для ноды
https://github.com/sgentle/phantomjs-node

исходники для воспроизведения прикрепил ( на всякий случай, запускать ./parser/index.js )

kobezzza 17.12.2014 02:17

Оки, пасиб, завтра утром постараюсь всё починить.

cyber 17.12.2014 02:27

kobezzza,
только что взял https://github.com/kobezzza/Collecti...lection.min.js
баг воспроизводится

kobezzza 17.12.2014 13:32

Выкатил апдейт, в phantomJS почему то typeof от HTMLCollection давал function, а не object.

***

А почему ты не пользуешься bower или npm для загрузки пакетов?

bower install collection.js --save

// или

npm install collection.js --save


Потом для обновления пакетов можно просто делать:


bower update

// или

npm update


ЗЫ: предварительно в проекте нужно сделать будет bower init или npm init.

cyber 17.12.2014 13:32

kobezzza, а можно ли задать что объект перебирался с конца?

к примеру
{
x:1
y:3
s:5
}

начал перебор от s до x

cyber 17.12.2014 13:33

Цитата:

Сообщение от kobezzza
А почему ты не пользуешься bower или npm для загрузки пакетов?

использую и npm и bower)


kobezzza 17.12.2014 13:38

Цитата:

kobezzza, а можно ли задать что объект перебирался с конца
Конечно, для любых типов коллекций параметры итераций одинаковы: https://github.com/kobezzza/Collecti...%D 0%BE%D0%B2

Тебя нужен reverse.

$C({x: 1, y: 3, s: 5}).forEach(function () {
   ...
}, {reverse: true});


Тут правда есть нюанс: в стандарте не регламентировано сохранение порядка ключей в Object, поэтому в каждом браузере оно может реализовано по своему, но вот в Map порядок по стандарту задан (в порядке добавления).

cyber 17.12.2014 13:40

kobezzza, понял спасибо)

kobezzza 17.12.2014 14:24

Чёртов фантом, ещё багу нашёл в нём, выкатил патч.


Часовой пояс GMT +3, время: 01:03.