#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:
- Создайте массив, в который вы можете добавлять индексы.
- Создайте функцию, которая вычисляет сумму чисел в массиве. Я пользовался
reduce
здесь. - Создайте строку, а затем зарегистрируйте ее.
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);