简体   繁体   English

JavaScript, JSON - 如何在特定时间内运行 foo 循环?

[英]JavaScript, JSON - How Can I run a foor loop a specific ammount of time?

Hello So I have this code:你好所以我有这个代码:
its a bit tricky它有点棘手

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);
}

The Output looks like this: Output 看起来像这样:

{"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}

But I want it to look like this:但我希望它看起来像这样:

{"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); }

I dont want to show the sum the first time but later show it every 3 times Got andy ideas?我不想第一次显示总和,但后来每 3 次显示一次 有想法吗? :D PS. :D PS。 I prefer staying basic and only use a for loop我更喜欢保持基本,只使用 for 循环

Have a nice evening祝你今晚愉快

Could you just check if the i is not zero when you assign the value of output.sum ?当您分配output.sum的值时,您能否检查i是否不为零?

Something like the following:类似于以下内容:

 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); }

I found this out, yours is obviously shorter but here was my Idea:D我发现了这一点,你的显然更短,但这是我的想法: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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM