• Как добавить произвольные ключи в объект 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);
  • Как записать слова в массив?

    lastuniverse
    @lastuniverse
    Максим Ленский, держи:
    // тут и так все понятно )))
    var bt = document.getElementById('btn').onclick = method;
    var pr = document.getElementById('paragraph');
    var inp = document.getElementById('input');
    
    // создаем массив накопитель, в который будем складывать значения
    var arr = [];
    
    
    function method (){
      // получаем текст введенный в инпуте. если это сделать так как было у вас
      // (вне обработчика) то в переменной будет пустота (значение, которое 
      // было в инпуте на момент обращения к inp.value
      const text = inp.value;
      
      // тут мы просто разбиваем строку на слова. разделителем 
      // является \s+ - любой  пробельный символ (пробел, табуляция, 
      // возврат каретки, переход на новую строку)
      // повторяющийся 1 или более раз. на выходе будет массив слов
      const list = text.split(/\s+/);
    
      // вставляем полученный массив слов в массив накопитель
      // тут есть хитрость, троеточие превратит массив list в список 
      // параметров. Тоесть аналогичен записи, как если бы мы 
      // указали arr.push(list[0], list[1], и т.д. до конца массива);
      arr.push(...list);
      
      // объединяем массив накопитель в строку, 
      // разделителями элементов будет ", "
      const result = arr.join(", ");
    
      // вставляем строку с результатом в параграф
      pr.innerText = result;
    
      // обнуляем текст в инпуте
      inp.value = "";
    
    }
  • Как заменить тег?

    lastuniverse
    @lastuniverse
    Артур Кудашев, вам дали 2 варианта, либо показывать инпут, либо ставить диву contenteditable. Выбор за вами.
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, ох блин, сори)))) ссылку то не кинул)))

    https://codepen.io/lastuniverse/pen/qGBRZK

    ошибки валяться в консоль при включении и выключении чекбоксов.

    P.S. Я так понял в моем варианте нужно полностью переделывать код ?

    ну там не так много кода, так что можно как переделать, так и подправить логику
  • Как парсить сайты где всё построено на JavaScript?

    lastuniverse
    @lastuniverse
    glebe,

    автоматом и с html сайта невозможно спарсить

    Разве я не тоже самое сказал (там где про универсальность и трудозатраты)

    Достаточно эмулировать действия пользователя в браузере
    именно про это и имел ввиду, с той лишь разницей, что предлагал брать данные из отрендеренного представления а вы непосредственно брать их из ответовна запросы.

    В моем варианте надо определить признаки нужных данных в готовом html и затем рапарсить dom или делать хитрые регулярки на текст чтобы их достать, в вашем случае разбираться с форматами/протоколами передачи данных.

    В зависимости от сайта проще и удобней это делать може быть как моим вариантом так и вашим.
  • Как сделать движение персонажа по криволинейному полу в игре?

    lastuniverse
    @lastuniverse
    dollar, который сидит на другом канвасе, расположенном под канвасом с ограничителями )))

    Как только пиксель стал непрозрачным
  • Как добавить произвольные ключи в объект localStorage?

    lastuniverse
    @lastuniverse
    Genri_Rus, добавил проверку на title (94 строка)
    но у вас там проблемы похлеще. в локалсторадже лежат объекты, а вы читаете значения из локалсторадж в переменную cart, которая должна быть массивом, но после загрузки из локалсторадж становится объектом а затем пытаетесь обратится к cart как к массиву (вызываете методы .push и .filter в 41 и 46 строках соответственно). Добавил в 40 и 45 строки вывод переменной cart в консоль где видно, что там объект.
  • Как в js вызвать импортируемую функцию?

    lastuniverse
    @lastuniverse
    Robur, удивляюсь Вашей способности давать адекватные ответы и комментарии на неадекватные вопросы.
    Поделитесь секретом, а то последнее время еле сдерживаюсь, чтобы не сорваться на школьников. А тут можно сказать что и сорвался.
  • Как определить, в какой области находится курсор?

    lastuniverse
    @lastuniverse
    Владимир, помню, когда на первом курсе института сдавали инженерную графику, со всего курса факультета (примерно 100 человек) реально могли решать задачки человек 5, и только двое за отведенное время успели решить около десятка вариантов каждый, помогая сокурсникам. При этом по прошествии 24 лет программистами из 100 чел работают около 20. Это я к тому, что понимание геометрии и из нее вытекающих даны далеко не всем, но это не значит что эти люди глупы, просто им не дано мыслить геометрическими категориями.
  • Как парсить сайты где всё построено на JavaScript?

    lastuniverse
    @lastuniverse
    glebe, человек как раз и спрашивает, как получить данные для сайтов, в которых эти данные получают с помощью запросов из js.

    В таком случае недостаточно открыть "инструменты разработчика" и скопировать из них запросы. Необходимо будет разбираться с авторизацией/сейсиями/токенами а также с параметрами запросов и много еще с чем. В настоящий момент сделать полностью автоматическую систему, способную сделать это с любым произвольным сайтом без участия человека невозможно. Так что остается только вариант с анализом и реверсинженерингом кастомных протоколов передачи данных, форматов информационных пакетов, и скриптов сайта.