Задать вопрос
  • Как контролировать translate при помощи мыши?

    lastuniverse
    @lastuniverse
    zeni1agent, понял, ответа на ваш вопрос не знаю.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, я не проводил ревизию всего кода, просто посмотрел конкретные точки.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, если вы хотите туда вставить пустой массив, вы обнулите локалсторадж вставив туда пустой массив.
    я делал это по другому, но можно и так, просто не забудьте после обнуления удалить эту строчку.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, цитата которую вы привели - ошибочна, это у меня в локалсторадже лежали объекты от моих попыток. я уже об этом писал.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, и хорошо бы использовать разные значения const localName = 'local'; для разных вариантов, это бы позволило не путаться из-за данных оставшихся в локалсторадже от других версий
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, в этом варианте хранятся вот так

    [
    	{"id":"check-option-1","a":"http://lorempixel.com/30/30/city","title":"TITLE + добавляет всплывающую подсказку к тексту ссылки","img":"http://lorempixel.com/30/30/city","p":["1","1.1"]},
    	{"id":"check-option-2","a":"http://lorempixel.com/30/30/technics","img":"http://lorempixel.com/30/30/technics","p":["2","2.1"]}
    ]


    для проверки вставьте после
    const localName = 'local';
    такую строчку, она выведет в консоль то что в локалсторадж
    console.log(localStorage.getItem(localName));

    если есть какието левые вкрапления, то они скорее всего от других версий в локалсторадже остались
    тогда вы можете их отчистить так
    localStorage.setItem(localName, JSON.stringify([]));


    если же вы хотите так:
    {
    "check-option-1": {id: "check-option-1", a: "http://lorempixel.com/30/30/city", title: "TITLE + добавляет всплывающую подсказку к тексту ссылки", img: "http://lorempixel.com/30/30/city", p: Array(2)}
    "check-option-2": {id: "check-option-2", a: "http://lorempixel.com/30/30/tech
    }


    то возмите мой класс сторадж, но перед использованием отчистите локалсторадж так
    localStorage.setItem(localName, JSON.stringify({}));
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, и еще, у вас в вашем варианте используются именно цифровые индексы, то есть вы попытались смешать оба способа, но получили только усложнение и никакого профита, так как по ID вы элемент по id уже не сможете достать.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, не совсем, вы выберите вариант хранения и под него все делайте.

    если у вас индексы цифровые то лучше чтобы было так:
    [
       {id: "check-option-1", a: "http://lorempixel.com/30/30/city", title: "TITLE + добавляет всплывающую подсказку к тексту ссылки", img: "http://lorempixel.com/30/30/city", p: Array(2)},
       {id: "check-option-2", a: "http://lorempixel.com/30/30/tech ... }
    ]


    если же вместо индексов использовать id. то лучше так:
    {
    "check-option-1": {id: "check-option-1", a: "http://lorempixel.com/30/30/city", title: "TITLE + добавляет всплывающую подсказку к тексту ссылки", img: "http://lorempixel.com/30/30/city", p: Array(2)}
    "check-option-2": {id: "check-option-2", a: "http://lorempixel.com/30/30/tech
    }


    от того какой вариант использовать зависит то как добавлять и удалять элементы

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

    во втором варианте для добавления, получения или удаления достаточно работать по id но не будут напрямую работать методы push, filter прочие методы массивов

    класс Storage реализует второй вариант, а для работы с методами массива реализует копию данных в виде обычного массива (cart.list)

    как именно хранить данные решать только вам, но как сказано выше это меняет и логику обработки.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Роман, просто занят своей работой, в результате недоглядел. Трудно постоянно переключать внимание с одного на другое.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, очень извиняюсь, обманул вас. Видимо у меня в локалсторадж лежало не [item1, item2, и т.д] а {id1:item1, id2:item2, и т.д}. Осталось от предыдущих попыток работы)

    я про этот вариант пишу https://codepen.io/Genri_Rus/pen/gyKjRR

    если у вас в локалсторадж хранятся записи вида [item1, item2, и т.д] то я не прав и у вас все норм.
    если же у вас в локалсторадж хранятся записи вида {id1:item1, id2:item2, и т.д} то тогда нарушена логика хранения и обработки данных в коде.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, я уже начал путаться в этих примерах)))))
    У вас была нарушена всего лишь логика работы с локалсторадж, потому и посоветовал работать через класс Storage, он позволит не задумываться о непосредственно сохранении и чтении в/из локалсторадж.
    По этим примерам на память не скажу, нужно заново вникать, тестить и смотреть.
    Думаю с логикой работы сами разберетесь, а логика синхронизации с локалсторадж зашита в класс.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, до 83 строчки просто скопируйте и вставьте к себе, а далее уже по своему, просто запись и чтение сохраняемых в локалсторадж производите через объект cart не задумываясь как там оно работает:

    внести значение: cart.set(id,data);
    изменить значение: cart.set(id,data);
    удалить значение: cart.del(id,data); или cart.set(id,undefined); или cart.set(id,0); или cart.set(id,""); или cart.set(id,false);
    получить значение: var item = cart.get(id);
    получить массив значений: cart.list;
    получить ассоциативный массив значений: cart.hash;

    при использовании методов cart.set и cart.del сохранение в локалсторадж происходит автоматически.
    Чтение из локалсторадж происходит при создании объекта const cart = new Stogage('local'); (в данном случае cart будет работать со значениями сохраненными в локалсторадж под ключем 'local')
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, вот. Переименовал метод add в метод set (так правильнее) и сделал в нет проверку на наличие переменной, если устанавливаемая переменная пустая строка, ноль, false или undefined, то данный id будет удален.



    посмотрите по коду:
    1. как создается объект cart от класса Storage
    2. как производится обращение к объекту cart (внесение, получение и удаление данных)
    3. Вставтье класс Storage и объект cart в свой код и работайте с localstorage через методы объекта cart.

    сам объект catr так же имеет свойства:
    catr.list - содержит синхронизированную копию данных в виде масива, хранящихся в licalstorage по ключу 'local'
    catr.hash - содержит синхронизированную копию данных в виде ассоциативного масива (объекта), хранящихся в licalstorage по ключу 'local'

    ВАЖНО!!! свойства catr.list, catr.hash можно использовать только для чтения. При попытке записи данных через эти свойства вы получите рассинхронизацию между данными хранящимися в этих свойствах и licalstorage
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, не совсем, я не предлагаю вам взять мой вариант, возмите только класс Storage и работайте с локалсторадж через него а в метод класса add добавтье проверку на ундефайнед и если устанавлмвается неопределенное значение вызывайие метод del.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, рассмотрите внимательно мой вариант, в котором был реализован класс сторадж, в нем это легко реализуется.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    if (title) {
      mHTML += '<a href="' + cartArray[i].a + '" title="' + cartArray[i].title + '"><img src="' + cartArray[i].img + '"></a>';
    } else {
     mHTML += '<a href="' + cartArray[i].a + '"><img src="' + cartArray[i].img + '"></a>';
    }
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, нет, это просто сокращенная форма if .. else.
    Посмотри тернарные операторы
  • Как записать слова в массив?

    lastuniverse
    @lastuniverse
    Максим Ленский,
    что такое ... три точки ?

    это ES6 оператор Spread

    и обязательно ли его наличие ?

    Если вам не надо сохранять в массиве результаты предыдущего ввода, то вам вполне подходит вариант от olya_097.

    Если же предыдущие значения сохранять надо, добавляя к ним вновь введенные слова но вы не хотите пользоваться оператором Spread, то вы можете заменить это:
    arr.push(...list);

    на это:
    list.forEach(word=>{
         arr.push(word);
       });


    или на это:
    arr.concat(list);