Задать вопрос
  • Есть ли сервисы/программы для прогнозирования следующего числа/диапазона чисел?

    lazalu68
    @lazalu68
    А что конкретно вам нужно? Напишите какого рода статистический анализ вам нужен, я просто по фану попробую реализовать в качестве публично доступной демки на jsfiddle.net
  • Будет ли забиваться память при таком коде и правильно ли организован класс?

    lazalu68
    @lazalu68
    в констукторе класса можно сделать запрос в другое место?

    В целом можно. Конечно обычно все таки советуют делать init (как вы и сделали вначале), но если никаких последствий плохих не предвидится, то почему бы и нет.

    Собственно для этого я и создвал метод create, чтобы в нем получить некоторые данные, затем уже манипулировать готовым блоком с полученным цветом и заданным руками типом.
    Поскольку из конструктора нельзя вернуть промис (или можно?), пришлось добавить метод create.

    Понял, дошло зачем нужен create.

    мб можно даже просто обновлять color вызывая create при каждом интервале, хотя наверно лучше создавать новый объект

    Ну вот да, на самом деле тут в принципе можно не создавать объект, тупо собирать строку, что будет быстрее и проще. Это вы практикуете ООП? Если суть просто в том, чтобы с десяток символов отправить, то можно и без класса же, а то с ним куча лишних действий добавляются:
    Без классов
    async function getRandomColorName() {
      const response = await fetch('http://www.colr.org/json/color/random').then(r => r.json());
    
      return response.colors[0].tags[0].name;
    }
    
    async function send(data) {
      const response = await fetch('https://reqres.in/api/users', {
        method: 'post',
        mode: 'cors',
        body: JSON.stringify(data),
      })
        .then(r => r.json())
        .catch(console.log);
    
      console.log( 'Data sent successfully, response: ', response );
    }
    
    function initSending(data, Construct) {
      setInterval(async () => {
        send({ type: 'brick', color: await getRandomColorName() });
      }, 10000);
    }
    
    initSending();
    Но если нужен класс, то как-то так:
    С классом
    class Block {
      constructor(data) {
        if (!data.type) {
          throw new Error('No type passed!');
        }
    
        this.color = data.color || '';
        this.type = data.type;
      }
    
      prepareForSending() {
        this.color = this.color.toUpperCase();
    
        return this;
      }
    }
    
    async function getRandomColorName() {
      const response = await fetch('http://www.colr.org/json/color/random').then(r => r.json());
    
      return response.colors[0].tags[0].name;
    }
    
    async function send(data) {
      const response = await fetch('https://reqres.in/api/users', {
        method: 'post',
        mode: 'cors',
        body: JSON.stringify(data),
      })
        .then(r => r.json())
        .catch(console.log);
    
      console.log( 'Data sent successfully, response: ', response );
    }
    
    function initSending(data, Construct) {
      setInterval(async () => {
        const block = new Block({ type: 'brick', color: await getRandomColorName() });
        send(block.prepareForSending());
      }, 10000);
    }
    
    initSending();

    Все что написано выше это чисто моё видение, вариантов написания - миллионы. Первый вариант это вот как я представляю себе самое простое решение задачи. В идеале можно бы еще объект блока хранить в памяти и просто обновлять ему свойство color
  • Как ребенка 12лет ввести в it?

    lazalu68
    @lazalu68
    xmoonlight, ну это да, есть много подобных игр которые некоторым детям заходят: kerbal, opus magnum, spacechem, screeps.
  • Как ребенка 12лет ввести в it?

    lazalu68
    @lazalu68
    xmoonlight, в целом я согласен, но вы видели когда-нибудь детей которых вот уже в 12 лет прям привлекают алгоритмы? Я видел всего дважды: в первом случае это был аутист (очень хороший на самом деле человек), а во втором - жутчайший нёрд и сноб у которого тоже с кукушкой в итоге случилась беда.
  • Как ребенка 12лет ввести в it?

    lazalu68
    @lazalu68
    Люто плюсую робототехнику, шикарнейшая тема. Один знакомый после длительного периода конвульсий с целью найти своё дело решил наконец попробовать ардуино, открыл свою малюсенькую школу такой простой, чисто развлекательной робототехники ардуино. Зашло и пошло так, что не остановить. Детки счастливы. Делают крутые штуки, типа вот как эта мадам.
  • Почему таким образом осуществляют операцию присвоения?

    lazalu68
    @lazalu68
    ArturPetrov, если попытаться сложить строки "12" и "34", то получится строка "1234". А если попытаться сложить числа 12 и 34, то получится число 46
  • Как проверить отсуствие точки с запятой в конце вызываемых JQuery-методов?

    lazalu68
    @lazalu68
    Сергей Золотарёв, я сильно сомневаюсь что кто-то придёт и поможет с таким простым квестом. Лучше сначала скиньте какая регулярка у вас получилась, а тостер уже скажет чо в ней не так
  • Почему таким образом осуществляют операцию присвоения?

    lazalu68
    @lazalu68
    Mass[i] - текущий элемент массива, а сумма это результат сложения всех элементов массива. Даже не знаю толком что тут ещё можно объяснить
  • CS-Cart + Barba.js?

    lazalu68
    @lazalu68
    Вот нашел в документации, мб поможет:
    Option: cacheIgnore
    Allows Barba to cache your pages.

    Saving pages in the cache result in less bandwidth usage and less server-side load: no XMLHttpRequest are made for pages that have already been visited.

    If disabled, Barba will retrieve each page from the server on every request: this could be useful if your page contains scripts that need to be evaluated on each page call.


    А на самом деле немного странно. Мне кажется если у вас объявлены функции работы с корзиной, то больше вам их не нужно объявлять. Или я чего-то не понимаю
  • Будет ли забиваться память при таком коде и правильно ли организован класс?

    lazalu68
    @lazalu68
    Спасибо за развернутые вопросы. Как раз не мог понять в чем мои косяки.
    Постараюсь ответить как я рассуждал при написании.
    1. Обратил внимание что функция асинхронная и создание блока заимает время.
    2. Действительно, не зачем, переписал код. (Хотел иметь возможность получить последний созданный блок)
    3. Действительно, не зачем, переписал код с использованием this. (Когда писал думал что нужен экземпляр для использования методов, затупил)
    4. тоже что и в 3.
    5. Он писался в свойство, последнего созданного блока, по сути тоже не зачем, переписал.


    1. Так это вы её сделали асинхронной. Все используемые вами функции там синхронные, так что можно убрать таймаут без всяких проблем,

    Дело в том, что я толком не знаю что происходит, поэтому вряд ли смогу подсказать что-то по делу. Например я в упор не понимаю зачем существует create, ведь сам конструктор по сути и должен заниматься созданием. Кроме того этот самый create вместо того чтоб создавать объект (что следовало бы из его названия) просто возвращает хардкодные данные. Опять же, я не знаю правильно ли я понял, но я бы сделал так:

    class Block {
      constructor(data) {
        if (!data.type) {
          throw new Error('No type passed in Block constructor!');
        }
    
        this.color = data.color || '';
        this.type = data.type;
      }
    
      prepareForSending() {
        this.color = this.color.toUpperCase();
    
        return this;
      };
    }
    
    function send(data) {
      fetch('http://test.com', {
        method: 'POST',
        body: JSON.stringify(data),
      })
      .catch(console.log)
    }
    
    function initSending(data) {
      setInterval(() => {
        send( data );
      }, 10000);
    }
    
    const block = new Block({ type: 'brick', color: 'red' });
    
    initSending( block.prepareForSending() );
  • Как задать имя переменной через массив?

    lazalu68
    @lazalu68
    rapidum_alder, ну раз вы хотите объект, то берете объект и создаете в нем нужные свойства попутно распихивая нужные данные
  • Как сделать скролл по блокам?

    lazalu68
    @lazalu68
    А о каких конкретно блоках речь? Для некоторых вариантов существует fullpage.js
  • Как вывести элементы массива на экран с пробелом цыклом for?

    lazalu68
    @lazalu68
    Смотрите в консоль, очевидно в коде ошибки которые стопудняк будет видно в консоли.
  • Будет ли забиваться память при таком коде и правильно ли организован класс?

    lazalu68
    @lazalu68
    Может остальным все понятно, а для меня тут какая-то сатана необъяснимая происходит. Если отбросить глобальные вопросы типа "зачем нужно чтоб блок посылал себя сам" и "почему функция отправки не реализована вне класса", то остаётся еще много:
    1. Зачем в create вообще таймаут,
    2. Зачем в экземпляре хранится current_block?
    3. Зачем еще один блок создаётся в init?
    4. Вопрос связан с предыдущим: зачем нужно внутри метода класса создавать еще один экземпляр этого класса?
    5. Зачем create отдаёт current_block который нигде не используется?

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

    lazalu68
    @lazalu68
    Это самая стандартная задача по yandex.maps, вот пример из официальной документации.
  • Как реализовать Yandex SpeechKit на сайте?

    lazalu68
    @lazalu68
    Красота. А можно посмотреть на приложение?
  • Как сделать отставание прокрутки фона?

    lazalu68
    @lazalu68
    Гуглить что-то типа "parallax background"
  • Как выполнять функцию через динамичные промежутки времени?

    lazalu68
    @lazalu68
    Сергей, я спорить особенно не собираюсь. Ты спросил почему он мог выбрать это, я тебе ответил - наверное потому что это разные вещи, разница не только в написании. А может и в другом причина. Может он позже ответит по-другому.

    Гугли hoisting, var, let, const; там много инфы. Нууу, разница в целом такая же как между переменными объявленными через var и const, не больше.