?

Log in

DMakeev

dmakeev in webdistortion

Ассоциативные массивы в JavaScript

Все мы немножко грешим шаблонностью мышления — привыкли пользоваться одними методами в одном языке и пробуем их же в других. Есть в JavaScript такая штука как ассоциативные массивы. В книгах/мануалах пишут что да, их есть у нас, велкам. А на практике не всегда получается хорошо. Если опустить весь мат последних трех часов то сухой остаток следующий:

- ассоциативные массивы есть
- использовать ассоциативные массивы в JavaScript можно, но крайне осторожно
- если ключи ассоциативного массива — числа, массив перестает быть ассоциативным.
На практике это приводит к не...му дебагу — почему это у меня в массиве не то что нужно.

Вывод: использование new Object вместо new Array везде где предполагается ассоциативность массива. Это чуть изменяет JSON — описание всего хозяйства, но на практике работает гораздо корректнее.

PS JS это ДАО. Пока не прочувствуешь на своей шкуре нифига хорошего не получится.
 


Comments

Ну как бе вообще лучше все делать на объектах, так как такого пространства имен в JS нет, а хотелось бы, поэтому я считаю, что все должно быть оформленно в объекты. Дольше, больше, мучительнее и медленнее, но в итоге лучше )
Дык в том-то все и дело что когда срок жизни проекта года два дольше=дороже=нельзя.
Для хранения списков массивы-то как бы и созданы, но вот косяк JS с индексами всю малину портит, а творить костыли на объектах ой как не охота.

Сейчас вот прицеливаюсь сделать объект-обертку, которая будет максимально прозрачно зафигачивать массив в JSON и вытаскивать его оттуда.