quiero algo asi pero no se como hacerlo
https://i.stack.imgur.com/WQfHH.png
var number = document.getElementById('x').value; var i = 1; var sum = 0; while(i <= number){ sum += i; i++; } document.getElementById('html').innerHTML = sum;
const arr = (n) => new Array(n).fill(0).map((_, k) => k + 1); const calc = (n) => arr(n).reduce((prev, curr) => prev + curr, 0); const log = (n) => console.log(n, '=>', arr(n).join(' + '), '=', calc(n)); log(3); log(5);
new Array(n)
crea una matriz con n
elementos.fill(0)
llena la matriz con ceros.map((_, k) => k + 1)
llena la matriz con un número entero ( k
es el índice de la matriz, que está basado en cero).reduce()
permite calcular la suma de cada elemento de la matriz.join()
concatenará cada elemento de la matriz para crear la parte x + y
PD: Vincent fue más rápido pero ya redactó mi respuesta.
Si la intención es generar líneas number
, cada una con 1+2+... = N
, podría hacer:
let output = ""; for (n=1; n <= number; n++) output += `${ /* "1+2+...+n" */ Array(n).fill().map((_,i) => i+1).join("+") } = ${ /* the sum */ n * (n+1) / 2 }\n`;