Ответы пользователя по тегу JavaScript
  • Как вытащить значение по ключу из вложенного объекта?

    @slide13
    frontend/web-developer
    usersList.forEach(user => console.log(user.company.name))
    Ответ написан
    Комментировать
  • Рандомное число в диапазоне с равным шансом выпадения?

    @slide13
    frontend/web-developer
    Вот ответ с MDN

    function getRandomIntInclusive(min, max) {
      min = Math.ceil(min);
      max = Math.floor(max);
      return Math.floor(Math.random() * (max - min + 1) + min);
    }
    Ответ написан
    3 комментария
  • Почему данные из localstorage отображаются при переходе на другую страницу со 2 раза?

    @slide13
    frontend/web-developer
    Отправка запроса на сервер это асинхронная операция, а вы делаете переход на "/metric" сразу же после начала отправки запроса, не дожидаясь его выполнения. Поэтому вначале осуществляется переход на другой роут, а потом записываются данные в localStorage, следовательно они и начинают отображаться после повторного захода на "/metric"
    Ответ написан
    Комментировать
  • Почему у элемента появляется style="display: none;"?

    @slide13
    frontend/web-developer
    Ну так у вас в if вызывается метод fadeOut на классе box, а в jquery fadeout после того как opacity элемента достигнет 0 убирает его полностью как раз через установку display в none
    Ответ написан
    Комментировать
  • Связь Javascript с интернетом?

    @slide13
    frontend/web-developer
    Вам нужен сервер для этого. Я для парсинга веб страниц использовал cheerio для nodejs сервера. Соответственно, отправляете данные с инпута к себе на сервер, а дальше уже с помощь cheerio делаете запросы куда вам нужно, парсите результаты и отправляете себе на сайт обратно нужные результаты. Можно и периодически фоном нужные данные парсить и через вебсокет пушить результаты на сайт
    Ответ написан
    Комментировать
  • Как работает функция componentDidUpdate?

    @slide13
    frontend/web-developer
    1. Вы ввели "1", нажали кнопку: у родителя меняется состояние на {value: "1"}, Child обновляется первый раз
    2. componentDidUpdate не срабатывает при первом рендере, поэтому в Child просто выводится Hello!
    3. В инпуте все еще "1", вы нажали второй раз кнопку. Снова вызывается setState с {value: "1"}, но каждый вызов setState приводит к перерендеру компонента, поэтому после второго клика происходит обновление родителя и вслед за ним потомка
    4. На второй перерендер у Child срабатывает componentDidUpdate, и т.к. состояние в потомке не определено, т.е. по дефолту равно null, то срабатывает условие в if в componentDidUpdate
    5. Child обновляет свой state и записывает туда {value: "1"}, после снова обновляется, но т.к. теперь предыдущий state был равен null, а текущий {value: "1"}, то условие if в componentDidUpdate уже не выполняется
    6. Добавляете в инпуте цифру "2", нажимаете кнопку. Родитель меняет состояние на {value: "12"} и обновляется вместе с потомком
    7. И дальше ответ на ваш вопрос: у Child снова после обновления срабатывает componentDidUpdate. При этом предыдущее значение у него в state осталось то, что было записано в пункте 5 и текущее тоже равно этому же значению, т.е. в этом случае опять сработает if и в Child изменится состояние на {value: "12"}
    8. Child снова обновляется после изменения своего состояния, срабатывает componentDidUpdate, предыдущее значение состояния value выводит "1", а текущее уже "12" так что if снова не срабатывает


    Надеюсь понятно написал ) Не понятно только зачем вам в Child нужно состояние, которое дублирует пропы, так делать не надо
    Ответ написан
    3 комментария
  • Как прекратить отмену dragover на краю картинки (dragover постоянно слетает)?

    @slide13
    frontend/web-developer
    Если коротко, то dragleave всплывает от каждого дочернего элемента у дроп зоны, поэтому, в идеале, у зоны не должно быть дочерних элементов. Т.е. надо поверх картинок создать, например, полупрозрачный div, который и будет дроп зоной.

    Но, как быстрый вариант, можно добавить:
    pointer-events: none;
    для класса preview-image

    это как раз отменит эффекты указателя для всех дочерних элементов текущей дроп зоны, чтобы на них не срабатывал dragleave
    Ответ написан
    Комментировать
  • Как сделать чтобы значение прогрессбара начиналось с нужного процента?

    @slide13
    frontend/web-developer
    установить в условии определении процента дефолтный процент (10) на нулевой индекс

    index == 0 ? 10 : ...
    Ответ написан
    Комментировать
  • Как правельно поправить скрипт?

    @slide13
    frontend/web-developer
    У тебя обе функции для очистки таймера и ивентов для 1го и 2го ряда называются одинаково - flipped. Из 2х одинаковых функций выполняется только последняя. Т.е. когда наводишь на любой элемент 1го ряда срабатывает 2й flipped, который, соответственно, для 2го ряда добавляет css класс flip-card_flipped и поэтому весь второй ряд переворачивается. Что нужно будет сделать теперь, думаю, понятно.
    Ответ написан
  • Как получить данные после редактирования таблицы webix?

    @slide13
    frontend/web-developer
    Пример: https://snippet.webix.com/shi6fqo0

    В первую таблицу добавил событие onAfterEditStop

    on: {
      onAfterEditStop(state, editor) {
        if(state.value != state.old) {
          webix.message(state.value);
          webix.message(editor.row);
          webix.message(editor.column);
        } 
      }
    }

    Где,
    state.value - отредактированное значение ячейки
    editor.row - id строки
    editor.column - свойство объекта строки

    Если нужны значения сразу всех ячеек, то их можно получить через mapCells, подробнее читать тут
    Ответ написан
    Комментировать
  • Как сделать условие по переданному аргументу с консоли?

    @slide13
    frontend/web-developer
    В Vue можно определять свои переменные окружения только начинающиеся с VUE_APP_
    Ну а дальше в консоли что-то типа того:
    VUE_APP_TEST=test yarn dev (зависит от текущей ОС)
    И в приложении смотрим в process.env.VUE_APP_TEST
    Ответ написан
    Комментировать
  • Как заменить пустой таб на любое число?

    @slide13
    frontend/web-developer
    Если правильно понял:

    str.replace(/\t{2}/g, '\t0');

    Если 2 таба подряд - заменяем на таб и 0
    Ответ написан
  • Как решить проблему с yarn eject?

    @slide13
    frontend/web-developer
    Очень похоже, что добавлена директория юзера в git репозиторий.
    Т.е. в командной строке, находясь в папке юзера была выполнена команда git init.
    Решение - удали скрытую папку .git в этой директории (если ты туда ничего не коммитил) и сделай git init в папке с проектом, если вообще тебе git нужен.
    И вообще, для чего делать eject? Сомневаюсь, что у тебя в этом есть необходимость.
    Ответ написан
    3 комментария
  • Как использовать ymaps.geocode на react?

    @slide13
    frontend/web-developer
    react-yandex-maps отличная бибилиотека, использовал на 2-х проектах, проблем вообще никаких нет, в том числе и с яндекс картами самими.

    Сам же ключ при использовании react-yandex-maps нужно вписывать в query у YMaps Provider:

    <YMaps
      query={{
        ns: "use-load-option",
        apikey: "ваш ключ api",
        load: "загружаемые модули"
      }}
    >
    Ответ написан
    Комментировать