Задать вопрос
  • Как получить содержимое и id сообщения на которое ответил пользователь в тг от бота?

    @Redeve
    Веб-макаке не хватит и 640гБ
    update => message => reply_to_message => text / message_id

    https://core.telegram.org/bots/api#message
    Ответ написан
    Комментировать
  • Почему память не может быть 'read'?

    А вы пробовали отключать общий буфер обмена на этой виртуалке? Ошибка явно указывает на него.
    Ответ написан
    Комментировать
  • Как перейти на следующий элемент массива в JS?

    Seasle
    @Seasle Куратор тега JavaScript
    function* iterateArray(array) {
      for (const entry of array) {
        yield entry;
      }
    }
    
    const numbers = [2, 4, 6, 8, 10];
    const iterator = iterateArray(numbers);
    
    console.log(iterator.next()); // { value: 2, done: false }
    console.log(iterator.next()); // { value: 4, done: false }
    console.log(iterator.next()); // { value: 6, done: false }
    
    // Дополнение
    const adapter = iterator => () => {
      const entry = iterator.next();
    
      return entry.value;
    };
    
    const next = adapter(iterator);
    
    console.log(next()); // 2
    console.log(next()); // 4
    console.log(next()); // 6

    Версия без генератора:
    const iterator = array => {
    	let index = 0;
    
    	return () => {
    		const value = array[index];
    
    		if (index < array.length) {
    			index++;
    		}
    
    		return value;
    	};
    }
    
    const numbers = [2, 4, 6, 8, 10];
    const next = iterator(numbers);
    
    console.log(next()); // 2
    console.log(next()); // 4
    console.log(next()); // 6

    Я бы настаивал на версии с генератором, т. к. используя его, можно всегда узнать когда массив закончился. Оба варианта возвращают undefined как обозначение об окончании массива. Следовательно, во втором варианте можно проверять на undefined и если получаем true, значит проитерировали весь массив. Но что если undefined будет значением массива? В этом случае генераторы всю работу делают за нас, т. к. дополнительно отдают флаг, который говорит о завершении. Конечно, можно в варианте без генератора также симулировать данное поведение, возвращая следующую структуру:
    {
        value,
        done: array.length === index
    }

    Но зачем?
    Ответ написан
    3 комментария