Как выполнить итерацию до 100, используя цикл «для или во время», и показать сумму каждой итерации с помощью javascript?

#javascript #loops #for-loop #while-loop #iteration

Вопрос:

Просто делаю небольшое домашнее задание. Мне нужно выполнить итерацию до 100, но также и консоль.регистрируйте результат каждого предыдущего примера.

Пример серии: (1) (1 2) (1 2 3) … (1 2 3 … n)<=100

 Iteracion1=1
Iteracion2= 1 2 = 3
iteracion 3: 1 2 3 = 6
iteracion 4: 1 2 3 4 = 10
 

У меня есть это:

 for (i = 0; i <= 100; i  ) {
    if(i < 100) {
    console.log(`${i} ${1}`);
   }};
 

Но я не знаю, как складывать эту сумму на каждой итерации. У вас есть какие-либо рекомендации для этого, было бы здорово! Спасибо.

Ответ №1:

Вы можете efficiently достичь результата с помощью одного цикла.

Для демонстрационных целей я распечатал до 20 . Вы можете добавить любое количество по вашему выбору.

 let lastTotal = 0;
let lastStr = "";

for (let i = 1; i <= 10;   i) {
  const total = (lastTotal ?? 0)   i;
  const str = lastStr ? lastStr   "   "   i : i;
  console.log(`Iteration ${i}: ${str}${total === 1 ? "" : " = "   total}`);
  lastTotal = total;
  lastStr = str;
} 
 /* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; } 

Комментарии:

1. Условие для установки первой итерации на 1 2 = 3 : i > 1 ? console.log( ` Iteration ${i-1}: ${str} = ${total} ` ) : null; , не будет ли это лучше соответствовать желаемому результату операции? Первая итерация показала бы только 1 2 = 3, да? Хороший ответ, однако, приятный и компактный.

2. Спасибо за предложение. Я обновил Iteration ${i}: ${str}${total === 1 ? "" : " = " total} информацию о том, кто будет заниматься этим делом

3. Большое спасибо! Похоже, это действительно хорошо работает. Я изучаю код, чтобы лучше его понять. Я новичок, так что большое спасибо!

Ответ №2:

Для достижения этой цели вы можете использовать переменные за пределами for

 let sum = 0;
const previousSums = [];
for (i = 0; i < 100; i  ) {
  previousSums.push(sum);
  sum  = i;
  console.log(`${previousSums}`);
} 

Комментарии:

1. OP хотите получить результат в Iteration= 1 2 = 3 формате?

Ответ №3:

  1. Создайте массив, в который вы можете добавлять индексы.
  2. Создайте функцию, которая вычисляет сумму чисел в массиве. Я пользовался reduce здесь.
  3. Создайте строку, а затем зарегистрируйте ее.
 const arr = [];

function sum(arr) {
  return arr.reduce((acc, c) => acc   c, 0);
}

// On each iteration push the index in to the
// array. Create a string that joins up the array
// elements and logs the result of the sum
for (let i = 1; i <= 10; i  ) {
  arr.push(i);
  const str = `Iteration ${i}: ${arr.join(' ')} = ${sum(arr)}`;
  console.log(str);
}; 

Ответ №4:

Это должно сработать нормально.

Я создал новый массив для длины итерации i и использую Array#reduce его, чтобы суммировать все это до числа.

 const max = 10;

for (let i = 1; i <= max; i  ) {
  const arr = new Array(i).fill().map((_, i) => i   1);
  console.log(`Iteration ${i}: ${arr.join(' ')} = ${arr.reduce((acc, b) => acc   b, 0)}`);
} 

Комментарии:

1. OP хотите получить результат в Iteration= 1 2 = 3 формате?

Ответ №5:

 var total = 0;
var res = 0;
var upto = 6;
for(i=1;i<=upto;i  ){
total = total i;
res = res total;
}
console.log(res);