• Как сделать несколько вариантов проверки на верификацию в максимально краткой записи?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    r.id == mods.js || mods.m - это r.id == (mods.js || mods.m)
    Для двух случев можно и прямо написать r.id == mods.js || r.id == mods.m, для большего количества - проверяй в цикле по порядку.
    Ответ написан
    Комментировать
  • Как сверстать элемент?

    Aetae
    @Aetae
    Тлен
    SVG и stroke-dasharray. Или простой картинкой - это одноразовая хрень, она не обязана быть адаптивной.
    Ответ написан
    Комментировать
  • Как правильно написать рекурсию?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Используй готовые либы(или смотри на их код).
    Сейчас миксины в ts представляют собой костыли поверх багов.

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

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Тут всё есть: https://ru.wikipedia.org/wiki/Фреймворк . Чётко и ясно. Плохо искал(искал ли?).
    Для js и не для js, разницы никакой.
    Ответ написан
    1 комментарий
  • Как задать обводку label-у при checked input-е?

    Aetae
    @Aetae
    Тлен
    Мужик, учи селекторы, все эти плюсики и звёздочки имеют конкретное значение, это не какая-то магия.
    Это всё будет работать только если label находится в том же самом контейнере что и input и строго после (ниже) него. Иначе - только скрипты.
    Ответ написан
    1 комментарий
  • Почему не работает sort с массивом?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Тыкни тут: https://learn.javascript.ru/task/shuffle в решение и прочитай всё. Нельзя использовать сортировку для шафла.
    Ответ написан
    Комментировать
  • Как изменять свойства другого класса?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Сделать то так конечно можно - вы сами придумали вариант, но ненужно. Это приведёт к каше, которую сложно отлаживать. Создаваться, добавляться и удаляться "наниты" в "симуляцию" должны только с помощью конкретных методов, в которых весь подсчёт и надо вести. Эти свойства - свойства "симуляции" и изменяться должны только ей самой.
    Ответ написан
    Комментировать
  • Почему не находит нужный файл?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Просто делай pdf.src = url; и всё. Blob - он для находящихся внутри памяти js бинарников, а не для обычных файлов лежащих по соседству.
    Ответ написан
    Комментировать
  • Может ли браузер сам остановить бесконечный цикл javascript?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Если вечный цикл или простая рекурсия - браузеры давно умеют это отлавливать. Но если структура зацикленности по-хитрее, то могут и не отловить - тогда только краш.)
    Ответ написан
    1 комментарий
  • Как переделать document.querySelectorAll под Vue.js?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Правильный ответ: querySelectorAll никак не переделывается под Vue.
    Забудь про прямую с работу DOM. В Vue ты работаешь с данными и только данными. Изменения в данных автоматически отражаются на отображении, но отображение ты руками вообще не трогаешь.

    Если есть проблемы с пониманием - дай более конкретный пример, и тогда мы подскажем более конкретное решение.
    Ответ написан
    7 комментариев
  • Почему не работает функция в классе?

    Aetae
    @Aetae
    Тлен
    Потому что у каждой function - свой this, принимающий значение на момент вызова(если явно не указано обратного). Так как в данном случае функция async function (user) { - это колбэк, this у неё определяет вызывающая сторона, т.е. что-то в дебрях класса User, который ничего сам не знает о вашем dg.
    Используйте для колбэка стрелочную функцию, либо bind'ите и колбэк.
    Ответ написан
    Комментировать
  • Что это за js-скрипт от оператора МТС который подключается на моем сайте?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    https://habr.com/ru/post/489528/ и ещё куча постов об этом.
    Операторы внаглую вставляют свою рекламу в http трафик.
    Используйте явно https для всего, в т.ч. и для самого своего сайта.
    Ответ написан
    Комментировать
  • Как правильно удалить элементы массив не завтратив кучу времени и памяти?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Если значения - объекты делай тупо filter, всё равно они по ссылкам храняться, не должно особо влиять на память. Ток потом оригинал массива занули и всё.
    Ответ написан
    Комментировать
  • Как передать 5 ТБ данных на сервер?

    Aetae
    @Aetae
    Тлен
    1Гбит - это 128Мбайт.
    Скорость записи среднего современного HDD 90 - 150Мбайт.
    Так что даже если у клиента хороший HDD, провайдер вам честно даст весь Гбит(что совсем не факт) и на всём протяжении до клиента этот Гбит сохранится(что тоже требует проверки), а также не будет просадок за время загрузки, то вы получаете ~11 часов 30 минут.
    Что уже сильно чревато, в случае любых непредвиденных обстоятельств.

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

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Это называется асинхронность. Гугли на тему, информации вагон.
    Если вкратце, то: вызов функции происходит сейчас, возврат из функции получается сразу после вызова, а ответ из базы приходит когда-нибудь потом, когда база подумает.
    Варианта всего два:
    1. использовать callback - функцию которая будет вызвана поле завершения запроса(та самая function(err, result, row) {);
    2. использовать Promise
    function CheckLoginPromise(login){
      return new Promise(
        (resolve, reject) => DataBase.Handle.query('SELECT * FROM `users` WHERE `login` = ?', [login], function(err, result, row) {
          if(err) return reject(err);
          if(result.length > 0) {
            console.log(result);
            return resolve(true); 
          }
          resolve(false); 
        })
      )
    }
    
    CheckLoginPromise(login).then(bool => {
      // делаем что-то
    })

    2а. использовать async\await сахар для Promise.const bool = await CheckLoginPromise(login);
    Ответ написан
    Комментировать
  • Как дождаться выполнения промиса в цикле?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Современным подходом является await в цикле, но ничего не мешает сделать рекурсивную функцию, как во времена колбэков:
    function loop(array, getPromise) {
      array = array.slice();
      const responses = [];
      return new Promise(function innerLoop(resolve, reject) {
        if (array.length) {
          return getPromise(array.shift()).then(response => {
            responses.push(response);
            innerLoop(resolve, reject);
          }, reject);
        } 
        resolve(responses);
      });
    }
    
    function request(url) {
      return new Promise((res, rej) => {
        const delayTime = Math.floor(Math.random() * 10000) + 1;
        setTimeout(() => res(url), delayTime);
      });
    }
    
    loop(['a', 'b'], request).then(console.log, console.error);
    Ответ написан
    Комментировать
  • Что стоит использовать type или интерфейс?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Мысли простые на самом деле: зри в корень.
    Интерфейсы используй для описания интерфейсов, типы используй для описания типов.
    И нет, это не одно и тоже.
    Если утрировать: интерфейс - это описание структуры данных, встречающееся на стыке взаимодействия компонентов системы или разных систем, в основном используется только на этом самом стыке; тип - это внутренние сущности которыми оперирует система и которые встречаются повсеместно.
    Ответ написан
    Комментировать
  • Почему не срабатывает return?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Не проверял, но скорее всего:
    if (node.children[0].value == 'on' ) { inputRadioValue(node.children[0]); }
    -->
    if (node.children[0].value == 'on' ) { return inputRadioValue(node.children[0]); }

    В этой ветке код уходит в рекурсию, но возвращаемое значение из рекурсивного вызова просто отбрасывает и код проваливается до последнего return false.
    Ответ написан
  • Как верстать такие "чудо" макеты?

    Aetae
    @Aetae
    Тлен
    Ну пускай дизайнер рисует как он видит адаптацию этого дела хотяб для трёх основных размеров и от туда уже плясать.
    Иначе влепи картинкой с width: 100% и вёрстка готова.)
    Ответ написан
    3 комментария
  • Что сделать, чтобы (4).add(3) равнялось 7?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Решить вопрос можно прочитав любой учебник по основам.

    Конкретно тут проблема в том, что this есть только у настоящих функций.
    Если вам нужна функция - используйте нормальную функцию. Стрелочные функции придуманы для конкретных случаев - коротких инлайн кусков кода.
    Ответ написан
    Комментировать