• Объясните, как действует код и почему он работает: weirdReverse=a=>a.sort(n=>1)?

    KaizDA
    @KaizDA Автор вопроса
    Прочитал одно из возможных объяснений в обсуждении. Поскольку в английском не слишком хорош, могу сделать ошибки. По этой причине, пожалуйста, если был где-то не прав, поправьте, буду благодарен. Ссылка на то, где мной это было прочитано.

    В основе своём метод sort(), как уже понятно из названия сортирует массив элементов. При сортировке букв он используется порядок UTF-6, именно по потому он может сортировал от А до Я, предварительно вызывая String для преобразования элементов массива в строку (то же самое происходит и с числами). Исходя из вышеперечисленного, метод sort() сортирует элементы исходя из Unicode. Для сортировки чисел в метод передаётся аргументы, которые очень часто называется (a, b), где проходит сравнение, что => a - b.

    В случае с заданием, нам приходится сократить код и использовать только один знак, в моём случае это n. Почему же код действует? Как я понял это происходит потому, что компаратор (как я понял из одного из ответов на просторах в интернете, компаратор – это метод класса, который реализует сравнение объектов, признаки равенства и неравенства коего определяет тот, кто этот класс создал), использует тот факт, что его аргументы передаются слева-направо, из-за чего для многих массивов порядок сортировки такой: [‘A’, ’B’, ’C’, ’D’] => A> B> C> D, что собственно, логично. Следовательно, при перестановке в порядке возрастания – это фактически разворот (этот момент не совсем был мной понят).

    Однако, нечто подобное будет работать только для массивов с длиной менее одиннадцать, так как NodeJS переключает алгоритм сортировки для разных размеров массива, хотя это также используется и в других языках (стоит заметить, человек, написавший последнее, не проверял V8, чтобы подтвердить это).
    Можно даже сказать, что подобного рода реализация ошибочна, поскольку кроме как в CodeWars код не работает от слова совсем и он вообще не должен был работать. Таким образом, более-менее вероятный ответ – это допущение в NodeJS.
    Ответ написан
    5 комментариев
  • Как стать топовым WEB разработчиком?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Ингридиенты чтобы стать топом в любой профессии (вроде сантехника или фриланс веб-разработчика):
    - опыт
    - знания
    - узнаваемость (куча клиентов, рекомендации)
    - разумные цены
    - высочайшее качество

    Т.е. много лет пахать, нарабатывать имя и репутацию.

    -или-

    Попытайтесь устроится на работу и начинайте двигать по карьерной лестнице.
    Ответ написан
    6 комментариев
  • Дергается скролл на на телефоне на комп версии прокрутка нормальная?

    @Flying
    В первую очередь вам необходимо профилировать нагрузку на отрисовку через профайлер, "дёргание" означает просадку по fps, а просадка по fps означает что задачи основного потока выполнения не влезают в 16ms чтобы обеспечить 60fps.

    Если открыть сайт в Firefox, то он сразу указывает на возможную причину: "This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Perform..."

    Быстрый просмотр показывает что это действительно так - у вас подключен jquery.sticky.js, созданный аж в 2012-м и реализующий то, что сейчас делается через position: sticky или IntersectionObserver путём навешивания обработчика на событие scroll. Это приводит к тому что на каждое движение страницы запускается JavaScript обработчик и создаёт изменения в DOM которые приводят к необходимости пересчёта стилей, а то и layout'а.

    Изменения в DOM - в целом довольно дорогая операция, а уж пересчёт layout'а - тем более, так что логично что на более слабых CPU мобильных устройств это не влезает в бюджет по времени.

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

    Таким образом начните с замены jquery.sticky.js на нормальное решение, а потом перепроверяйте результат через профайлер и смотрите что ещё вы можете выбросить. Ваша страница визуально явно не требует тех 900кб скриптов что вы на неё грузите.
    Ответ написан
    Комментировать
  • Как перенести переменную?

    Morpheus_God
    @Morpheus_God
    Примерно так
    Ответ написан
    Комментировать
  • Почему не могу распарсить JSON?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    В чем ваша ошибка написано в сообщении о ней:
    Unexpected token p in JSON at position 0 at JSON.parse

    Там написано, что нулевой (это значит самый первый по счету) символ для парсера json оказался неожиданным. Его значение "p" - это указано тут же в этом сообщении. Теперь посмотрите что же у вас идёт первым символом в вашем, якобы, JSON'е:
    parseResults({"response":{"Header":

    Какая неожиданность! Это буква "p"!
    Вы пытаетесь распарсить то, что JSONом не является. Документ этого формата не может так начинаться.
    Ответ написан
    3 комментария
  • Есть ли разница для автовакуума как были удалены строки из таблицы?

    Melkij
    @Melkij
    PostgreSQL DBA
    После truncate автовакуум не запустится. Потому что зачем? Там пустой новый relfilenode для таблицы и всех индексов, что там пылесосить-то?
    Если из таблицы не нужны все данные - то truncate (или drop table) неисчислимо проще и быстрее для базы.
    Ответ написан
    Комментировать
  • Почему форма не видит input type file?

    alekciy
    @alekciy
    Вёбных дел мастер
    Вероятно потому, что вы ищите файл в $_POST. А нужно в $_FILES: Загрузка файлов методом POST
    Ответ написан
    Комментировать
  • Как разрешить вход по RDP на ПК только с определенного ПК, средствами администрирования Windows?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Сертификация
    Ответ написан
    Комментировать
  • Как отсортировать объект по вложенному массиву?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    const newArray = arr.slice(); // так как sort мутирует массив, а нужен новый
    const isAnnaSkill = skill => skill.name === 'Anna';
    const getAnnaLevel = item => item.skills.find(isAnnaSkill)?.level;
    newArray.sort((a, b) => getAnnaLevel(b) - getAnnaLevel(a));
    Ответ написан
    2 комментария
  • Что означает эта запись?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Комментировать
  • Cама перезагружается ubuntu. куда рыть?

    Возможно перегрев или проблема с блоком питания. Или что-то с драверами или настройками BIOS/UEFI.
    Посмотреть /var/log/messages, /var/log/kern.log в моменты перед перезагрузкой.
    Что выводится командой last reboot ?

    Попробовать изменитьнастройки перезагрузки по умолчанию на false:
    Ответ написан
    2 комментария
  • Что означает запятая в теле функции?

    hzzzzl
    @hzzzzl
    https://learn.javascript.ru/operators#operator-zap...

    просто слева направо вычисляются выражения, и последнее "возвращается"

    console.log( (a = 4, a = a + 10, a) )
    // 14


    a[i%2] += b
    собственно это прибавляет к элементу a[i%2] значение переменной b и возвращает массив

    UPD
    и да, я склоняюсь к мнению, что так лучше не писать :D
    Ответ написан
    Комментировать
  • Как передавать Post запрос на другой сайт с параметрами?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Комментировать
  • Какой набор пакетов использовать, чтобы реализовать простой веб-сайт?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Disclaimer: я регулярно даю на собеседованиях тестовое задание "сделать что-то без фреймворков", все что написано дальше это моя личная точка зрения.

    Смысл задания в том, чтобы увидеть какие велосипеды будет использовать соискатель, какой код напишет когда не будет жестких рамок навязанных фреймворками.
    Если бы хотели проверить ваше умение гуглить готовое - задание звучало бы "собрать из готовых библиотек".

    Отдельный вопрос - почему вы вдруг хотите использовать внешние пакеты, если у вас нет уже проверенных с чем вы работали ранее?

    По списку:
    1. Роутер: https://github.com/search?q=php+router
    2. Аутентификация пользователей - зачем тут какой-то пакет??
    3. ORM - использование ORM в живом проекте очень холиварно. Скорее всего смысл задания - проверить еще и ваше умение писать запросы руками.
    Ответ написан
    5 комментариев
  • Почему js работает с классами и перестаёт с id?

    Потому что классов может быть много а айди должен быть уникальным и один.
    В этом случае заметьте
    let box = document.getElement s ByClassName('box-text1')[0];

    Значит много.

    Вот вписывая это.
    let box = document.getElementsByClassName('box-text1')[0];

    Вы обращаетесь как к массиву.

    А у айди уберите и сработает
    let box = document.getElementById('box-text1')[0];
    Ответ написан
    Комментировать
  • Можно ли доверять ookla speedtest?

    Jump
    @Jump
    Системный администратор со стажем.
    Можно ли доверять ookla speedtest?
    Разумеется.
    Там все честно показано.
    Главное понимать что конкретно вы измеряете! Все вопросы обычно идут от непонимания того, что пытаются измерить.

    когда-то где-то от кого-то слышал, что ookla сотрудничает с операторами и показывает завышенные скорости
    Ну в сети какой только чуши не услышишь.

    Как видите, показания отличаются значительно
    Разумеется. Они и должны отличаться.

    На реальных задачах серьезной потери скорости не вижу.
    О какой потери скорости идет речь?

    Когда вы измеряете скорость - вы измеряете скорость до определенного сервера, по определенному протоколу, в определенный момент времени.

    До разных серверов разная скорость.
    В разное время может быть разная скорость.
    При разных протоколах скорость будет отличаться.
    Cкорость до конкретного сервера зависит не только от вашего провайдера, поэтому он не может вам ее гарантировать!.
    Ответ написан
    9 комментариев
  • Правильно ли выбрасывать исключения в бизнес логике?

    php666
    @php666
    PHP-макака
    Нет, это плохая практика.

    Исключительная ситуация на то и исключительная. Это ошибка запроса, нет коннекта к БД или отсутствие записи, которая, как мы уверены, должна существовать и тд. Это событие, после которого работа кода НЕВОЗМОЖНА.

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

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Нет такой функции в PHP7:
    Внимание
    Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0.

    5e653e7902287339007324.png
    Ответ написан
    Комментировать
  • Как написать числа прописью javascript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Готовое: meritt.github.io/rubles
    Ответ написан
    Комментировать