• Как проверить, что значение является итерируемым?

    0xD34F
    @0xD34F Куратор тега JavaScript
    x?.[Symbol.iterator] instanceof Function
    Ответ написан
    Комментировать
  • Как в докер установить ubuntu?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    докер это контейнер для запуска конкретного приложения в определенной среде, а не для запуска операционной системы. Что система будет делать в контейнере? Какой конкретно процесс от системы вы хотите запустить в докере?

    Для запуска операционной системы есть виртуальные машины, а докер - в принципе суть заключается в том, что запускается конкретный процесс, в изолированной среде, в текущей ОС.
    Ответ написан
    Комментировать
  • Как узнать кол-во всех квадратов в числе?

    VlasenkoFedor
    @VlasenkoFedor
    Программист: php, js, go
    Это все нечётные числа из цифр 1,4,9
    Функция называется mutations
    думаю за 5 мин вы найдете массу реализаций
    Ответ написан
    2 комментария
  • Как получить значение из массива, которое используется n раз?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Коротко:

    const getRepetition = (arr, repeated) => Array
      .from(arr.reduce((acc, n) => acc.set(n, -~acc.get(n)), new Map))
      .reduce((acc, n) => (n[1] === repeated && acc.push(n[0]), acc), []);

    Длинно:

    function getRepetition(arr, repeated) {
      const result = [];
      const count = {};
    
      for (const n of arr) {
        if (!count.hasOwnProperty(n)) {
          count[n] = 0;
        }
    
        count[n]++;
      }
    
      for (const n in count) {
        if (count[n] === repeated) {
          result.push(+n);
        }
      }
    
      return result;
    }
    Ответ написан
    1 комментарий
  • Из-за чего не работает JS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    "Бессплатный" хостинг-то, поди, на localhost не отзывается, у него какой-то IP адрес есть.
    Достаточно просто fetch('/test.txt');

    При использовании await, функция должна быть помечена как async.

    "Просто не работает" и "ничего не выходит" - это не описания ошибок. Вот вы console.log сделали - что он выводит? Может, там красненькие буковки какие ещё есть, которыми ясно написано, в чём проблема?
    Ответ написан
    2 комментария
  • Где и как предложить идею нового свойства CSS?

    @Flying
    Спецификаций CSS занимается рабочая группа в составе W3C. Там же есть и информация о том, как принять участие / предложить свою идею.

    К примеру вы можете создать issue в репозитории рабочей группы.

    Однако вам стоит понимать, что работа над спецификацией уровня CSS Grid - это многолетний труд сотен людей для того, чтобы довести её до реального использования. Если вы предполагаете что за всё это время никто из них не додумался до этой идеи - то вам стоит подумать ещё раз.

    Важно помнить, что в отличие от каких-то конкретный use cases которые были бы интересны для пользователей создатели спецификации сосредоточены на совершенно других вещах. Их цель - создание по возможности полного и непротиворечивого механизма, который при этом будет реалистичным в реализации и использовании.

    За примерами далеко ходить не нужно: parent selector - мечта уже нескольких поколений разработчиков и тема постоянных вопросов. Однако его нет в спецификации (хотя он был в первых драфтах CSS 3 насколько я помню) и скорее всего не будет. Причину, если интересно, попробуйте поискать сами.

    Или, к примеру, такое очевидное, казалось бы, опущение как отсутствие аналога :hover для "stuck" состояния элемента с position: sticky. Ведь его явно не хватает почти любому кто использовал этот стиль. Однако его не будет, о причинах (логичных, но далеко неочевидных) можно почитать в соответствующем issue.

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

    @dmshar
    Нет.
    Ансамбль - это всегда обобщение нескольких решений в одно - последовательное, параллельное, более изощренное - но всегда есть несколько решений на основании которых как-то определяется одно.
    НС - это всегда поиск одного решения путем оптимизации коэффициентов уравнения (ну, весов связей если так вам проще).
    Если вы разобрались "классическим МЛ" - то должны понимать, что любая задача в этой области - это задача оптимизации. Иногда явно так сформулированная, иногда -
    несколько завуалировано. А НС - это просто еще один метод поиска того самого оптимума. Не более и не менее. Про всякую связь с "живыми" нейронами, синапсами и дендритами и пр. - забудьте сразу по прочтении.
    Ответ написан
    2 комментария
  • JavaScript что не так с селекторами?

    @artuh_a
    Зачем вы ищите
    document.querySelector('.search2__button button')[0]
    ? этот метод итак возвращает первый найденный элемент, возможно вы путаете с querySelectorAll?
    Ответ написан
    5 комментариев
  • Какой алгоритм используется при возможности 2 неудачных попыток?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Для бОльшей понятности условия будем считать что у нас есть 2 предмета. Оба разбились - эксперименты кончились. И будем считать, что задача - получить ответ за минимальное количество бросков.

    Рассмотрим, что у нас есть только один предмет. Очевидно, что придётся его кидать с 1 метра, с 2, с 3... пока не разобьётся. Максимум будет 5000 бросков.

    Но у нас есть 2 предмета.

    Тогда мы можем бросить первый не с 1 метра, а сразу с какого-то N. Если он разобьётся, то придётся второй кидать с 1, 2, ... и по максимуму второй кинем N-1 раз. а всего будет N бросков.

    Но если он не разбился, то мы можем бросить первый уже с бОльшей высоты. Какой? Допустим, он разобьётся. Чтобы получить по максимуму те же N бросков, второй предмет мы уже может бросить N-2 раз, а, значит, первый предмет надо сбрасывать с высоты N+(N-1).

    Если первый снова не разбился, на следующем шаге его можно сбросить с высоты N+(N-1)+(N-2)... и так далее.

    Лишнего нам тоже не надо. А, значит, надо подобрать такое наименьшее N, при котором N-й бросок первого предмета будет с 5000 метров или выше.

    Итого - имеем N+(N-1)+(N-2)+...+1 >= 5000. Сумму арифметической прогрессии знаем, квадратные уравнения решать умеем. Получаем N=100.
    Ответ написан
    Комментировать
  • Какой алгоритм используется при возможности 2 неудачных попыток?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Какой угодно. Раз у задачи нет цели на минимизацию чего-либо, значит можно просто кидать один предмет с метра, двух, трёх и т.д., пока не разобъётся.
    Ответ написан
    2 комментария
  • Почему анонимная функция ломает код, если перед ней не был установлен; ?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что у вас получается
    console.log()(function() {})();
    То есть, ожидается, что вызов console.log() вернёт функцию, которая будет вызвана с параметром (function() {}).
    Ответ написан
    7 комментариев
  • Как упростить код?

    uDenX
    @uDenX
    PHP Developer
    Вынести в переменную кол-во наследников и подставлять индекс в цикле

    Либо попробуйтеli:nth-child(-n+6)

    https://developer.mozilla.org/ru/docs/Web/CSS/:nth...
    Ответ написан
    4 комментария
  • Рандомное число в диапазоне с равным шансом выпадения?

    @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 комментария
  • Какой алгоритм вычисления кратности чисел более эффективен?

    Adamos
    @Adamos
    Если нужно определить кратность - то берем учебник Математика, 6 класс.
    Глава Признаки кратности 3, 5 и 9 с минимумом вычислений.
    Если же нужно заполнить массив - то потери времени на его заполнение, да в жабоскрипте, на порядки превышают стоимость этой простенькой проверки.
    Может ускорить (а может и замедлить) этот процесс замена в цикле ++i на прибавление того числа, которое действительно надо прибавить для получения следующего кратного - оно циклично повторяется: [3, 2, 1, 3, 1, 2, 3]. Проверка уберется, но вычислений, на самом деле, только прибавится. Зато без ветвления и пустых циклов.
    Ответ написан
    1 комментарий
  • Как найти ближайшую дату?

    @antares4045
    Если я правильно понял формулировку вопрса, то его можно свести к "найти наименьшую дату из списка, исключая те, что были раньше, чем опорная дата"
    const closestTo = (dateToCompare, datesArray) => {
      const buff = datesArray.filter(date => date >=dateToCompare).sort()
      return buff.length ? buff[0] : undefined
    }
    Ответ написан
    Комментировать
  • Алгоритм перевода RGB-компонент в длину волны?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Длина волны в RGB.
    Взято из https://www.johndcook.com/wavelength_to_RGB.html
    const w = 640 // Длина волны
    let red, green, blue;
    
    if (w < 380 || w > 781) {
      [red, gren, blue] = [0, 0, 0];
    } else if (w < 440) {
      [red, green, blue] = [(440 - w) / 60, 0, 1];
    } else if (w < 490) {
      [red, green, blue] = [0, (w - 440) / 50, 1];
    } else if (w < 510) {
      [red, green. blue] = [0, 1, (510 - w) / 20];
    } else if (w < 580) {
      [red, green, blue] = [(w - 510) / 70, 1, 0];
    } else if (w < 645) {
      [red, green, blue] = [1, (645 - w) / 65, 0];
    } else {
      [red, green, blue] = [1, 0, 0];
    }
    
    let factor;
    if (w < 380 || w > 781) {
      factor = 0;
    } else if (w < 420) {
      factor = 0.3 + 0.7 * (w - 380) / 40;
    } else if (w < 701) {
      factor = 1.0;
    } else {
      factor = 0.3 + 0.7 * (780 - w) / 80;
    }
    
    const gamma = 0.8;
    
    const R = (red > 0 ? 255 * Math.pow(red * factor, gamma) : 0);
    const G = (green > 0 ? 255 * Math.pow(green * factor, gamma) : 0);
    const B = (blue > 0 ? 255 * Math.pow(blue * factor, gamma) : 0);
    
    const color = `rgb(${R}, ${G}, ${B})`;
    console.log(color); // rgb(255, 32.763138565028974, 0)
    Ответ написан
    4 комментария
  • Как упростить такой цикл?

    Alexandroppolus
    @Alexandroppolus
    кодир
    urls.forEach((url, i) => {
        console.log(url + ' ' + ports[i % ports.length]);
    });
    Ответ написан
    6 комментариев
  • Почему 192.168.1.0/23 и 192.168.0.0/23 одно и то же?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы просто не понимаете смысл короткой записи маски.
    /23 означает, что первые 23 бита маски равны единице, а последние 32-23 = 9 бит равны нулю.
    Таким образом маска будет 11111111.11111111.11111110.00000000 = 255.255.254.0
    Теперь разложим побитно ваши адреса:
    Маска:   11111111.11111111.11111110.00000000 = 255.255.254.0
    Адрес 1: 11000000.10101000.00000000.00000000 = 192.168.0.0
    Адрес 2: 11000000.10101000.00000001.00000000 = 192.168.1.0
    Чтобы преобразовать эти адреса в сети надо выполнить побитовый логический AND адреса с маской. Получим
    192.168.0.0 & 255.255.254.0 = 192.168.0.0
    192.168.1.0 & 255.255.254.0 = 192.168.0.0
    Таким образом, оба адреса входят в одну сеть размера /23.
    Правильное обозначение этой сети 192.168.0.0/23.
    Ответ написан
    1 комментарий
  • Как менять input в реальном времени?

    profesor08
    @profesor08 Куратор тега JavaScript
    Для этих целей лучше использовать атрибуты min, max для input с типом number.
    <input type="number" min="50" />

    Но если хочется js, то пример обработчика. Тут еще надо будет решить, что удобнее случать, input или change
    Ответ написан
    Комментировать