gpt4 book ai didi

javascript - 简单的 for 循环似乎无法正常工作

转载 作者:行者123 更新时间:2023-12-04 01:48:20 24 4
gpt4 key购买 nike

我很难随机获得一个数字从 1 到 16 的数组而不重复。
我做了数量 用于放置 中的数字的数组创建编号 功能。

创建编号 函数有一个 for 循环,它获取从 1 到 16 的数字,直到 if 语句将 16 个数字插入 数量 大批。

最后,我运行 createNum() 并在网络上显示数字。
虽然我正在制作这段代码,但它有时会起作用,但现在它不起作用。

有人可以指出我在哪里犯了错误吗?

let num = [];

function createNum () {
for (i = 0; i <= 15;) {
let numGen = Math.floor(Math.random() * 15) + 1;
if (!num.includes(numGen)) {
num.push(numGen);
i++;
};
};
}
console.log(createNum());
document.getElementById("selectedNumbersShownHere").innerHTML = num;
console.log(num);

最佳答案

这是因为 Math.random()从不返回 1,所以最后 Math.floor(Math.random() * 15)将返回最大 14 并将其添加到 1 将获得最大 15。
使用Math.ceil而不是 Math.floor IE

let num = [];

function createNum () {
for (i = 0; i <=15;) {
let numGen = Math.ceil(Math.random() * 16);
console.log(numGen)
if (!num.includes(numGen)) {
num.push(numGen);
i++;
};
};
}
console.log(createNum());
document.getElementById("selectedNumbersShownHere").innerHTML = num;
console.log(num);

希望能帮助到你!

关于javascript - 简单的 for 循环似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59475450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com