Ответы пользователя по тегу JavaScript
  • Как рассчитать место в топе по объекту массива?

    const index = users.findIndex(item => item.id === <ID>);
    
    if (index === -1) { 
      // Не найден пользователь 
    } else { 
      console.log(index + 1); 
    }


    ...правда ощущение что я не понял вопроса, и вам надо просто отсортировать массив по "xp" и найти позиции в этом массиве.
    Ответ написан
  • Как осуществить автосмену дат с определенного времени?

    Это работа с часовыми поясами.
    Если в 17:30 это уже другой день, значит, насколько я понимаю, вы работаете с другим часовым поясом.

    Ищете временную зону, ставите moment.js + его плагин под временные зоны, затем создаете экземпляр, устанавливаете временную зону, и форматируете вывод (moment.js сам выведет всё правильно).

    Если нужны русские даты, для moment.js есть локализации.
    Ответ написан
    Комментировать
  • Как найти пересечения элементов в массиве?

    const a = [[8, 12], [17, 22]];
    const b = [[5, 11], [14, 18], [20, 23]];
    
    const result = a.reduce((acc, rangeA) => {
      
      return b.reduce((list, rangeB) => {
    
        if (rangeA[0] >= rangeB[1] || rangeA[1] <= rangeB[0]) {
          return list;
        }
    
        const from = Math.max(rangeA[0], rangeB[0]);
        const to = Math.min(rangeA[1], rangeB[1]);
    
        return [...list, [from, to]];
      }, acc);
    
    }, []);
    Ответ написан
    8 комментариев
  • Почему выдает ошибку при отправке запроса fetch?

    Анализируйте ответ сервера
    Скопируйте, загоните в JSON.parse, и увидите на какой позиции невалидный символ.
    Ответ написан
    Комментировать
  • Обработка API запроса в цикле?

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

    Поэтому делаются цепочки вызовов, т.е. ожидаете ответ, вызываете другую функцию с этим ответом, и эта функция, в свою очередь, может вызвать другие функции, включая саму себя чтобы получить рекурсию (цикл).
    Ответ написан
    Комментировать
  • Как по другому разбить массив?

    Посмотрите chunk у lodash
    К слову, он так и работает, через slice: https://github.com/lodash/lodash/blob/4.17.15/loda...
    Ответ написан
    Комментировать
  • Нашел чтото странное, это шелл?

    Оно ставит странную строку в куки, причем, судя по всему, предварительно сгенерированную (как вариант, на этапе установки плагина). Запись в куки это нехорошо, потому что потом, вероятно, эта строка может улететь злоумышленнику, который зная секрет раскодирует данные.
    Ответ написан
    Комментировать
  • Почему не идет клик на изображение?

    Не понятно что значит не идет клик.
    У вас передается селектор, которого нет в разметке.
    Ответ написан
    Комментировать
  • Как ограничить возможные расширения для загрузки клиентом на JS?

    На клиенте мы не влазим в файл, поэтому только сервер реально может отфильтровать невалидные файлы.
    Поэтому на клиенте не даете загружать файлы по расширениям (фильтр), а на сервере делаете всю остальную валидацию.
    Ответ написан
    Комментировать
  • JS последовательность изучения, что учить после основы в 2021 году?

    Сейчас почти весь фронт это React, минус часть работает с Ангуляром или Vue, и часть с динозаврами и другими менее популярными решениями.

    Минимально нужно:
    1. HTML
    2. CSS
    3. JavaScript
    4. Сборка (Webpack в 99% случаев)
    5. React (вся экосистема, включая Redux, Saga, Router, и прочее)
    6. Тестирование приложений на фронте (Jest, Karma, Selenium, Puppeteer, Cucumber, Gherkin минимум)


    Это самый минимум, но на самом деле надо намного больше:
    1. Знание архитектур ПО, видов, плюсов, минусов
    2. Знание принципов проектирования (шаблоны, SOLID, и другие слова)
    3. Изучение приемов кодирования
    4. Изучение работы сетевых протоколов (особенно HTTP/S)


    Дальше остается миллион и маленькая тележка того, что нужно знать ЕЩЕ, и здесь уже нереально всё перечислить, например:
    • Процессы отрисовки веб-страницы
    • Продвинутая работа с анимацией
    • Виды программирования, их плюсы и минусы, как они работают
    • Изучение инструментов
    • Изучение приемов балансировки нагрузки (в том числе на фронте)


    ...и потом еще Agile (чистый, потом Scrum, Kanban), а потом управление командами, принципы коммуницирования, принципы планирования работы, понимание процессов производства софта, и прочее и прочее..

    Поэтому рекомендую минимум по React выучить, и найти работу, и по возможности начать делать пет-проекты.

    Берете задачу посложнее, и делаете на нормальном стеке. В процессе соберете миллион грабель, научитесь тому минимуму, что необходимо, и так прокачаетесь.

    Пет-проекты нужно делать всегда, даже если есть работа, потому что работа это устоявшиеся принципы и инструменты, а пет-проекты дают возможность изучения и использования других инструментов, подходов, поэтому это отличный способ улучшить свои навыки.
    Ответ написан
    1 комментарий
  • Webpack: неужели после каждого изменения нужно пересобрать проект?

    Но, но не всё так плохо. Когда один раз соберете проект (запуск dev-сервера, например), дальнейшая сборка проекта на каждый "чих" занимает считанные секунды, поэтому особых сложностей не доставляет.

    По теме:

    1:

    Зависит от проекта, но в 99% случаев вебпаком собирают сложные веб-приложения, а там просто запустить файл и посмотреть результат не получится.

    Поэтому если это нужно, то можно спроектировать приложение таким образом, чтобы оно работало и БЕЗ сборки. Например, чистый JS (а не TypeScript), только относительные пути, подключение через System (например), полное отсутствие транспиляторов (только чистый JS/CSS). Правда, это будет мощный выстрел в ногу проекта, и соберете другие грабли, поэтому крайне не рекомендую это делать.

    2:

    Можно, но зависит от задач. Сборка проекта это просто команда, грубо, `webpack` в терминале. Запустить это можно на любом ПК, и так как это команда, то её можно запустить удаленно. Системы непрерывной интеграции работают именно таким образом, и сами собирают проект, тестируют, и так далее.

    Другой вопрос, что вы хотите npm от проекта, а одно без другого не живет (webpack это тоже модуль, без npm проект не собрать так как получится зависимости установить), т.е. нет, нельзя. В нормальном режиме.

    На самом деле, в теории, можно попробовать и даже это обойти, но я крайне не рекомендую это делать.
    Ответ написан
    Комментировать
  • Каким образом можно реализовать такой переход по ссылке?

    Требуется динамическое изменение атрибута формы, либо редирект, т.е. в любом случае без программирования не обойтись. Используйте JavaScript – при отправке формы (речь про форму визуально, а не конкретно про тег form) формируйте URL и вызывайте location.href = URL
    Ответ написан
    Комментировать
  • Как узнать ближайшее число в JS?

    Ищете разницу №1 через Math.abs(a - c)
    Ищете разницу №2 через Math.abs(b - c)

    Через сравнение разницы сможете понять к какому числу заданное число ближе.
    Получится всего одно сравнение больше/меньше вместо четырех.
    Ответ написан
    Комментировать
  • Почему не работает if в while-e?

    Если код выполняется в глобальной области видимости, то переменная name уже присутствует в объекте window. Вызывая name = null, внутри на самом деле будет строка "null", и поэтому оно не проходит проверку в первом условии, и проходит во втором.

    Поиграйтесь в консоли с window.name, увидите что там всегда строка, что бы вы не присвоили ей.

    Рекомендую код обернуть в IIFE (если подходит), должно заработать.
    Ответ написан
    Комментировать
  • Как называются такие свойства? и свойства ли это вообще?

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

    Возможно, потому что включен Hot Module Replacement, которые заменяет модули на лету без перезагрузки страницы. Этот вариант альтернатива обычной перезагрузке страницы, и, вероятно, поэтому второе не работает.

    Попробуйте отключить Hot Module Replacement.
    Ответ написан
  • Как корректно написать условие?

    Не понятно как это работает, мало кода.

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

    Я видео записывал про области видимости, можете ознакомиться здесь – https://www.youtube.com/watch?v=4-R9FoN8EBc
    Ответ написан
    Комментировать
  • Как сохранить содержимое external файла Csv в переменную в Javascript?

    Can’t access www.aaa.com/uploads/1.csv response. Blocked by browser? 0

    Код 0 указывает на сетевые проблемы. Проверьте доступность ресурса, чтобы исключить сетевые проблемы.
    Если ресурс доступен, то проблема на стороне браузера, копайте в сторону безопасности и сертификатов (обычно в сторону CORS или сертификатов HTTPS).
    Ответ написан
    Комментировать
  • Как избавиться от ошибки 'Failed to execute 'insertBefore' on 'Node': parameter 1 is not of type 'Node''??

    Нужно проверить переменную, скорее всего там не нода, или нода неожиданного типа
    Ответ написан
    Комментировать
  • Из-за чего мерцает текст?

    Судя по всему, какой-то браузерный баг – вижу что ошибка, вероятно, происходит после вызова таймера на изменение слайда на странице, и это вызывает Paint (перерисовку) всей страницы, и в этот момент происходит мерцание (видимо, баг отрисовки в браузере).

    Рекомендую разобраться со слайдером, почему он вызывает отрисовку всей страницы. Как предположение, если он не будет аффектить нижнюю форму, тогда ошибка по идее должна уйти.
    Ответ написан
    Комментировать