Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.10.2012, 17:17
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от trikadin Посмотреть сообщение
строки, в отличие от объектов - примитивные типы, и вот они как раз-таки копируются заново.
Хорошо, напишу, где я допустил неточность. В фразе "Но вместо 'mama' и 'papa' в данных свойствах могут храниться другие многомегабайтные объекты." имелось ввиду не JS-объекты, а "информационные объекты", коими могут быть и js-строки. Я НЕ знаю заранее, что там может быть. А если там будут строки длиной 2 гигабайта? Они будут копироваться заново?
-Думаю, что да. А Вы?

P.S. можно, конечно, перед присвоением свойств объекту все примитивные типы еще погружать в объекты-оболочки, чтобы такие объекты копировались уже по ссылке... но не масло ли масляное?
Ответить с цитированием
  #12 (permalink)  
Старый 24.10.2012, 17:23
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Dim@
мдаа залёт конечно такой бред нести, ну ладно:
Что за дурацкая привычка сразу свистеть? бред... залет... Вы на первом году службы в армии, или в цирке? Зачем цепляться к одному слову? По существу топика можете что-то сказать?
Я написал о двух проблемах в топике. Первую обсудили (будем так считать ). А что делать со второй?
У меня есть своё решение с помощью создания второй копии массива m2={}, но оно мне не нравится по потреблению ресурсов (в какое-то время будет существовать две копии боольших массивов), поэтому хотелось бы услышать мнение профессионалов по более изящному варианту решения.
Ответить с цитированием
  #13 (permalink)  
Старый 24.10.2012, 17:58
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Маэстро
можно, конечно, перед присвоением свойств объекту все примитивные типы еще погружать в объекты-оболочки, чтобы такие объекты копировались уже по ссылке...
Если у вас будут храниться многомегабайтные строки (например, картинки) - то это вполне хороший выход.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #14 (permalink)  
Старый 24.10.2012, 18:02
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Маэстро
-Думаю, что да. А Вы?
что мешает перевести примитив в объектное представление?
Ответить с цитированием
  #15 (permalink)  
Старый 24.10.2012, 18:10
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от melky Посмотреть сообщение
что мешает перевести примитив в объектное представление?
Категорически ничего не мешает. Просто чтобы перевезти доски мы используем грузовик (грузим их в кузов), а чтобы перевезти грузовик, мы используем... опять грузовик! (грузим грузовик в грузовик).
Ну да черт с ним. А по вопросу сортировки свойств в объекте можете что-то подсказать?
Хотя, идеально было бы делать то, что я назвал "переименованием" свойств объекта. Знаю, что все имена (названия свойств) - это хэш-массив. Как туда добраться? Есть способ?
Ответить с цитированием
  #16 (permalink)  
Старый 24.10.2012, 18:23
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Маэстро
чтобы перевезти доски мы используем грузовик (грузим их в кузов), а чтобы перевезти грузовик, мы используем... опять грузовик! (грузим грузовик в грузовик).
ошибаетесь - мы не грузим их в кузов, а делаем точно такие же доски, загружаем их в кузов, а старые выкидываем.

может, всё-таки поясните, зачем нужен сей велосипед и супер сила?
Ответить с цитированием
  #17 (permalink)  
Старый 24.10.2012, 18:40
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от melky Посмотреть сообщение
ошибаетесь - мы не грузим их в кузов, а делаем точно такие же доски, загружаем их в кузов, а старые выкидываем.
Ну почему же я ошибаюсь? Масло масляное-то ведь не в досках, а в грузовиках, то есть в объектах, которые тоже придется заключать в объекты, т.к. заранее не известно что везём. Следуя Вашей аналогии получается так:
мы не грузим их (грузовики) в кузов, а делаем точно такие же грузовики, загружаем их в кузов, а старые (грузовики) выкидываем.
-во как

Цитата:
может, всё-таки поясните, зачем нужен сей велосипед и супер сила?
Ну что тут пояснять, я же вроде написал в начале:
есть js-объект m, содержащий другие js-объекты (с черти-каким содержимым - там некие структуры и шифрованные данные). Назовем их "контейнеры".
Все свойства объекта m нумеруются (обзываются) натуральными числами от 0 до nn=10000. Этим свойствам присвоены контейнеры.
Требуется удалить любое свойство n при этом все остальные свойства от n+1 до nn должны сдвинуться в сторону меньших номеров.
n+1 должно стать на место n, n+2 должно стать на место n+1 и т.д.
Ответить с цитированием
  #18 (permalink)  
Старый 24.10.2012, 20:55
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Маэстро,
юзайте массивы и будет вам счастье
Ответить с цитированием
  #19 (permalink)  
Старый 24.10.2012, 21:10
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Dim@ Посмотреть сообщение
Маэстро,
юзайте массивы и будет вам счастье
Ваш совет равносилен например такому: напишите программу на Delphi и будет вам счастье!
Я же говорил, что у меня не массив, а объект. И заменить его на массив я не могу. Только не спрашивайте почему - не уводите дискуссию в сторону. А то, что сортировка в разных браузерах хеша ключей разная - это тоже МОЯ проблема? Кстати, сортировку по возрастанию в Хроме даже осуждают! http://habrahabr.ru/qa/3749/
Вот только интересно, кто победит? Те, кто осуждают, или компания Гугл?
Ответить с цитированием
  #20 (permalink)  
Старый 24.10.2012, 21:47
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Заимстоввание методов не пробовали?

var myObj = {

    "0": "0",
    "1": "1",
    "2": "2",
    "3": "3",
    
    "length": 4
};

alert( myObj["2"] ); // 2

Array.prototype.splice.call(myObj, 2, 1);

alert( myObj["2"] ); // 3


Если и это не подходит, значит, придётся реализовывать своюь структуру данных, где выборка по ключу будет O(1), и в которой так же можно будет менять ключ.

мне кажется, что это будет трудно, посему желаю вам удачи.


вообще, такая структура данных у правил в CSS таблицах :
Удаление элемента в "жидком" листе.
я с этим сталкивался уже.

в принципе, можно глянуть в исходниках на Java, как они сделали эти списки, и так же сделать на JS - это как вариант.

Последний раз редактировалось melky, 24.10.2012 в 21:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к свойству объекта по имени если оно хранится в переменной xaknik Общие вопросы Javascript 2 25.04.2012 23:12
Может ли свойство объекта быть массивом??? Alexeich Общие вопросы Javascript 25 21.11.2011 13:47
Как поменять свойство плагина? lyapharov jQuery 2 16.04.2011 19:39
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
как узнать тип значения объекта? VHS Общие вопросы Javascript 1 07.01.2009 23:57