Tengo este código, es un poco complicado:
let i = 0; const inputBuffer = []; const randomnumber = (min, max) => { return Math.floor(Math.random() * (max - min + 1) + min); } for (let k = 0; k < 10; k++) { console.log(convert(randomnumber(0, 1982))); } function convert(input) { inputBuffer.push(input); const output = {"current" : "0"}; if (i % 3 == 0) { let sum = 0; for (let ii = 0; ii < i; ii++) { sum += inputBuffer[ii]; } output.sum = sum; } i++; output.current = input; return JSON.stringify(output); }La salida se ve así:
{"current":605,"sum":0} {"current":708} {"current":456} {"current":1838,"sum":1769} {"current":1619} {"current":1404} {"current":1068,"sum":6630} {"current":1178} {"current":989} {"current":1280,"sum":9865}Pero quiero que se vea así:
{"current": 605} {"current": 708} {"current": 456} {"current": 1838,"sum":1769} {"current": 1619} {"current": 1404} {"current": 1068,"sum":6630} {"current": 1178} {"current": 989} {"current": 1280,"sum":9865} let i = 0; const inputBuffer = []; const randomnumber = (min, max) => { return Math.floor(Math.random() * (max - min + 1) + min); } for (let k = 0; k < 10; k++) { console.log(convert(randomnumber(0, 1982))); } function convert(input) { inputBuffer.push(input); const output = { "current": "0" }; if (i % 3 == 0) { let sum = 0; for (let ii = 0; ii < i; ii++) { sum += inputBuffer[ii]; } output.sum = sum; } i++; output.current = input; return JSON.stringify(output); }No quiero mostrar la suma la primera vez, sino mostrarla cada 3 veces
¿Tienes alguna idea? :D
PD. Prefiero mantenerme básico y solo usar un bucle for
Que tengas una buena noche
¿Podría simplemente verificar si i no es cero cuando asigna el valor de output.sum ?
Algo como lo siguiente:
let i = 0;
const inputBuffer = [];
const randomnumber = (min, max) => { return Math.floor(Math.random() * (max - min + 1) + min); }
for (let k = 0; k < 10; k++) { console.log(convert(randomnumber(0, 1982))); }
function convert(input) { inputBuffer.push(input); const output = {"current" : "0"};
if (i % 3 == 0) { let sum = 0;
for (let ii = 0; ii < i; ii++) { sum += inputBuffer[ii]; }
if (i !== 0) output.sum = sum; // HERE } i++;
output.current = input;
return JSON.stringify(output); }Descubrí esto, el tuyo es obviamente más corto pero aquí estaba mi idea :D
let i = 0; const inputBuffer = []; let db = false; const randomnumber = (min, max) => { return Math.floor(Math.random() * (max - min + 1) + min); } for (let k = 0; k < 10; k++) { console.log(convert(randomnumber(0, 1982))); } function convert(input) { inputBuffer.push(input); const output = {"current" : "0"}; if (db && i % 3 == 0) { let sum = 0; for (let ii = 0; ii < i; ii++) { sum += inputBuffer[ii]; } output.sum = sum; } i++ db = true; output.current = input; return JSON.stringify(output); }