@Mishytca

Как c помощью цикла for последовательно друг под другом вывести числа в консоль от -2e9 до 2e9?

Вопрос на понимание EventLoop.

for (let i  =  -2e9; i  <  2e9;  i++) {
            console.log(i);            
        }

нужно вывести все числа в консоль друг под другом указанном диапазоне.
При этом Браузер не должен закрашиться.
Без Async/await.
Это вообще реально?
Цикл for использовать обязательно.
  • Вопрос задан
  • 1056 просмотров
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
Таймауты - хрень.
Самый быстрый неблокирующий способ будет на генераторах, условно так:
const generator = (function* () {
  for (let i = -2e9; i < 2e9; i++) {
    yield console.log(i);           
  }
}());

while(!generator.next().done);

Только на моей машине скорость лога 10 - 20 в мс, что в итоге должно занять 2-4 суток.
Ну и браузер скорее всего свалится по out of memory задолго до того, потому что консоль - жирная.
Если не открывать консоль - будет быстрее, и, возможно, даже прокатит.
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Про задачу говорить не буду, уже высказывались выше.
Решение навскидку вижу только одно:
for (let i  =  -2e9; i  <  2e9;  i++) {
    setTimeout(console.log.bind(console, i), 0);        
        }
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
let number = -2e9;
let timer = setInterval(
  () => {
    console.log(number);
    number += 1;
    if (number > 2e9) {
      clearInterval(timer);
    }
  },
  1
);

Запускаете и ждёте от нескольких месяцев до нескольких лет, в зависимости от компьютера и браузера.
P.S. С циклом for, IMHO, не получится, он синхронный и браузер прервёт скрипт как блокирующий страницу.
Ответ написан
Комментировать
@Mishytca Автор вопроса
5fe9e613dfb7f961688640.jpeg

Я решил как - то так.. Но не прокатило)) тут тоже буквально годик и все готово)) но дело не в скорости... Надо использовать цикл for... это в условии...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы