• Как разбить массив объектов на массив массивов по условию?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    let results = [];
    let count = 0;
    let index = 0;
    
    array.forEach((obj) => {
      if (count + obj.count <= 500) {
        count += obj.count;
      } else {
        count = obj.count;
        index++;
      }
    
      if (!results[index]) {
        results.push([]);
      }
    
      results[index].push(obj);
    });
    Ответ написан
    Комментировать
  • Как разбить массив объектов на массив массивов по условию?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const groupBySum = (arr, key, max) => arr
      .reduce((acc, n) => (
        acc[acc.length - 1]?.[1] + n[key] <= max || acc.push([ [], 0 ]),
        acc[acc.length - 1][0].push(n),
        acc[acc.length - 1][1] += n[key],
        acc
      ), [])
      .map(n => n[0]);
    
    
    const result = groupBySum(arr, 'count', 500);
    Ответ написан
    Комментировать
  • Как правильно обрабатывать события в node-telegram-bot-api?

    mak_ufo
    @mak_ufo
    Кратко:
    Возьмите telegraf и посмотрите этот раздел

    Более развёрнуто:
    Вам нужно где-то хранить "состояние" пользователя. Например, в БД или Redis. И тогда код будет примерно такой:
    bot.on('message', msg => {
         const session = getSessionFromDb(msg.from.id)
         if (session === 'foo') { //пользователь уже ввёл напоминание
             //обрабатываем одним способом
         } else if (session === 'bar') { //пользователь не ввёл 
            //обрабатываем другим способом
         }
    })


    Развёрнуто:
    Читайте про конечную машину состояний. Её суть в том, что она на одинаковые входные данные возвращает разные значения в зависимости от состояния, в которой она находится. В той же википедии это подробно описано.
    Ответ написан
    1 комментарий
  • Как настроить CNAME GoDaddy для pythonanywhere?

    akelsey
    @akelsey
    Если в интерфейсе "pythonanywhere" не предусмотрено создание alias для webapp, то думаю без создания инцидента в поддержку "pythonanywhere" - никак. Т.к. на вебсервере указаны "alias" для вашего webapp, и web-сервер не ждет в заголовках хост "www.example.com". Так что "coming soon!" он выдаст на любое ваше имя w1.example.com/w2.example.com/www.example.com... (т.е. вы можете завести их всех, но результат будет без вмешательства администратора хостинга один и тот же)
    Ответ написан
    Комментировать