Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Для вдохновения: http://javascript.ru/blog/tenshi/yavascriptovoe-dao
IndexedArrayВсё-таки неправильно называть эту структуру массивом. IndexedCollection было бы лучше, на мой взгляд.
Всё-таки неправильно называть эту структуру массивом. IndexedCollection было бы лучше, на мой взгляд.
Для data я бы использовал Map, а для индексов — Set. Эти структуры как раз идеально подходят под эти задачи.
Ну или хотя бы стоит создавать их через Object.create(null), а не {} чтобы не тянуть ненужный прототип.
Можно и так, но тут корень проблемы зародился в самом JavaScript-е, который использует одинаковый синтаксис доступа [] и для массивов, и для хешей.И всё же это не повод смешивать понятия.
Я не стал их использовать, так как они пока в статусе экспериментальных, и не поддерживаются некоторыми браузерами.Для этого существуют полифилы (причём очень маленькие). Зато будете идти в ногу со временем и вознаграждать пользователей современных браузеров дополнительной скоростью.
Видно что человеку нечем заняться и у него масса свободного времени.Да, пришлось отложить работу над основным проектом.
Вместо того чтоб написать нормальный SQL запрос или хранимую процедуру, написать JS класс который на клиенте занимается тем, чем должен заниматься сервер.В статье я перечислил недостатки стандартного подхода, поэтому и решил перенести часть серверной логики на клиент. В моем приложении с 8-ю таблицами это позволило мне избавиться от нескольких API-интерфейсов на сервере, а так же от нескольких проблемных блоков кода с вложенными циклами на клиенте (вернее этот проблемный код теперь реализован классом IndexedArray). Общая сложность кода (сервер+клиент) уменьшилась, что и было целью.
Strelki.js — еще одна библиотека для работы с массивами