用于随机打印的循环逻辑的nodejs
nodejs for loop logic for random print
我有一个 for 循环,在那个循环中我必须打印 160 条消息,每条消息打印 62 次,但是是随机的
喜欢:
消息 1
留言 6
留言178
消息 1
留言 3789
消息 1
...
我想在 for 160 if 语句中使用
for(int i = 0; i<9920; i++){
if(i<=62){
print message
}else if(i>63 && i<=124){
print message
}
....
}
但我不知道这是否是更好的解决方案,我也不知道如何使其随机化
有人可以帮助我吗?
很难理解你的问题。如果我正确地解析了你的文本,你想要的是将每条消息随机打印 62 次(而不是固定顺序)。
我正在使用 while 循环,这当然适用于任何循环结构。
let totalPrintedMessages = 0;
const printedMessageCount = {};
const messages = []; //["Message 1", "Message 2", "Message 3", "Message 4"];
for (let i = 1; i <= 10; i++) {
messages.push("Message " + i);
}
while (true) {
// once we're done printing each message(s) 62 times randomly
if (totalPrintedMessages === messages.length * 62) break;
//using a count variable is more efficent
// if (isDone()) break;
// picking a message randomly from the list & printing it
const toPrint =
messages[parseInt(Math.floor(Math.random() * messages.length))];
// skipping if already printed 62 times
if (printedMessageCount[toPrint] === 62) {
continue;
}
totalPrintedMessages++;
console.log(toPrint);
// individual print count(s)
if (!printedMessageCount[toPrint]) {
printedMessageCount[toPrint] = 1;
} else {
printedMessageCount[toPrint]++;
}
// checking the current state of printed messages
// console.log(printedMessageCount);
}
function isDone() {
let printed = 0;
for (let i = 0; i < messages.length; i++) {
if (printedMessageCount[messages[i]] === 62) printed++;
}
return printed === messages.length;
}
我有一个 for 循环,在那个循环中我必须打印 160 条消息,每条消息打印 62 次,但是是随机的
喜欢:
消息 1 留言 6 留言178 消息 1 留言 3789 消息 1 ...
我想在 for 160 if 语句中使用
for(int i = 0; i<9920; i++){
if(i<=62){
print message
}else if(i>63 && i<=124){
print message
}
....
}
但我不知道这是否是更好的解决方案,我也不知道如何使其随机化
有人可以帮助我吗?
很难理解你的问题。如果我正确地解析了你的文本,你想要的是将每条消息随机打印 62 次(而不是固定顺序)。
我正在使用 while 循环,这当然适用于任何循环结构。
let totalPrintedMessages = 0;
const printedMessageCount = {};
const messages = []; //["Message 1", "Message 2", "Message 3", "Message 4"];
for (let i = 1; i <= 10; i++) {
messages.push("Message " + i);
}
while (true) {
// once we're done printing each message(s) 62 times randomly
if (totalPrintedMessages === messages.length * 62) break;
//using a count variable is more efficent
// if (isDone()) break;
// picking a message randomly from the list & printing it
const toPrint =
messages[parseInt(Math.floor(Math.random() * messages.length))];
// skipping if already printed 62 times
if (printedMessageCount[toPrint] === 62) {
continue;
}
totalPrintedMessages++;
console.log(toPrint);
// individual print count(s)
if (!printedMessageCount[toPrint]) {
printedMessageCount[toPrint] = 1;
} else {
printedMessageCount[toPrint]++;
}
// checking the current state of printed messages
// console.log(printedMessageCount);
}
function isDone() {
let printed = 0;
for (let i = 0; i < messages.length; i++) {
if (printedMessageCount[messages[i]] === 62) printed++;
}
return printed === messages.length;
}