> http://www.collection-js.com/manual/part-3.html
> http://www.collection-js.com/manual/part-5.html я не увидел там ничего про ключи. можешь привести пример, как выбрать всех юзеров старше 18 лет за O(log n)? >> как это будет выглядеть с использованием сабжа? > http://www.collection-js.com/manual/part-2.html приведи код, а не ссылку |
Цитата:
|
> // Сгруппировать по отношению старше/младше
> // и выбрать по ключу > group(':el.age > 18').get('true') я просил код шаблона. пофиг как делать группировку. |
> get(название ключа)
как создать ключ? |
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
> Как хочешь, статически (например ручками указав хеш) или динамически (например через группировку).
зайдём с другого конца.. var c= new Collection([ /* over 9000 */ ]) ... c.add({ name: 'bob', age: 18 }) ... var mature= c.get( ':el.age >= 18' ) что нужно приписать сюда, чтобы выборка в конце происходила за O( log n ) |
> Видимо, ты не в курсе про layout-ы.
рассказывай > Действительно, зачем нужны шаблонизаторы, давайте генерировать разметку программным кодом. чтобы подставлять значения в шаблоны, очевидно. программно это делать не удобно в ввиду отсутствия нативной поддержки целевого языка, и как следствие необходимости собирать из строк и правильно экранировать подставляемые значения. точно также на xslt не удобно формировать json. > Это голословно. рискнёшь доказать полноту по тьюрингу? > а вот программный код - это уже попахивает диагнозом "говнокодер" с каких пор програмный код не годится для описания моделей данных? ты так и не ответил на вопрос: >> Если Collection позволяет так группировать - будет "как у тебя". > пример кода? |
Цитата:
Из мана на сайте либы: // Создадим коллекцию, каталог музыкальных иснтрументов: // первичный уровень таблицы будет хеш-таблицей, где ключ — тип инструмента var db = new Collection({ guitar: { fender: [ {model: 'JAGUAR BLACKTOP HH RW BLK', price: 27921}, {model: 'STRATOCASTER BLACKTOP HH MN BLK', price: 28390}, {model: 'STANDARD TELECASTER ', price: 18518} ], gibson: [ {model: 'CUSTOM SHOP LES PAUL CUSTOM EB/GH', price: 159505}, {model: 'LES PAUL STUDIO FIREBURST CHROME HARDWARE', price: 50525} ] }, bassGuitar: { fender: [ {model: 'STANDARD JAZZ BASS RW Sunburst', price: 32205}, {model: 'STANDARD PRECISION BASS', price: 30640} ] } }); // Теперь выберем все гитары фирмы fender // для этого сделаем прямой запрос через get db.get('guitar > fender'); // Выберем модели, дешевле 20-ти тысяч db.get(':el.price < 20000'); // Ошибка, свойство price не найдено, // Т.к. отсчёт идёт с самого первого объекта, а не с guitar > fender // Чтобы установить нужную точку отсчёта, установим активный контекст db.newContext('guitar > fender'); // Теперь снова сделаем get запрос db.get(':el.price < 20000'); // Всё ок, т.к. теперь задан нужный контекст обхода // В случае задания в get прямой ссылки, она также будет теперь отталкиваться от активного контекста db.get('guitar > fender > 0'); // Ошибка db.get('0'); // Вернёт запрашиваемый элемент А теперь скажи, раз у тебя такая упер-пупер либа, как ты сделаешь выбор типа LIKE по произвольному полю без переборов? PS: А вообще я устал с тобой спорить, я знаю такой тип людей, вроде тебя, и знаю что это глупое занятие. Общайся сам с собой, а я буду общаться с адекватными людьми. |
> Укажи в конструктор не массив, а хеш, где ключи являются возрастом и будет тебе счастье.
не будет. в качестве домашнего задания предлагаю разобраться почему. а вот задание на две пятёрки: var c= new Collection([ /* over 9000 */ ]) ... c.add({ name: 'bob', age: 18 }) ... var mature= c.get( ':el.age >= 18' ) var rich= c.get( ':el.salary >= 9000' ) условия те же - O( log n ) > как ты сделаешь выбор типа LIKE по произвольному полю без переборов? поисковые системы же это как-то делают |
Часовой пояс GMT +3, время: 23:08. |