как добавить свойство объекта в объект в объекте ? %)
пушу функцию для хранения объектов в localStorage .
вот кусок userOptions = { set : function (key, value) { if (!ls.get('userId')) return; var userId = ls.get('userId'); var opObj = {} if ($.parseJSON(ls.get('OptionsOfUser-' + userId))) opObj = $.parseJSON(ls.get('OptionsOfUser-' + userId)); opObj[key] = value; ls.set('OptionsOfUser-' + userId, $.toJSON(opObj)); } } ls - это объект (не мной написанный) для работы с localStorage, он если нет localStorage пихает данные к кукки. Это так для справки. Суть проблемы: если я просто передаю ключ,значение , то все ок, но если я передам ключ,объект , то это объект полностью перезапишет объект в ключе. постараюсь пояснить если я сделаю вот так userOptions.set('positions',{ 'item1' : '001' }); userOptions.set('positions',{ 'item2' : '002' }); то на выходе будет obj = { 'positions': {'item2' : '002'} } а мне надо obj = { 'positions': {'item1' : '001', 'item2' : '002'} } |
по этому придется доставать из сторча обект целиком, изменять его, и засовывать измененный обратно.
По этому нормальные люди в сторче обьекты не хранят. А используют сторч как хэш таблицу, где ключи имеют свой префикс (ну вдруг какой скрипт еще захочет сторч использовать чтобы конфликтов не было) ну НА КРАЙ для создания иерархии в сторче можно использовать пространства имен (давать ключам особые названия) Напрмиер "cats/qq" = 11 "cats/ww" = 22 вот тут становится ясно что и qq и ww лежат в общем контейнере "cats" с такой организацией таблица будет быстрой (молнеиносной просто) на чтение и на запись каких-то единичных значений. но медленной(не на много так что не стоит пугаться) если мы захотим обработать все значения лежащие в cats, например. впрочем это просто пример |
Часовой пояс GMT +3, время: 02:16. |