【发布时间】:2020-11-13 21:35:44
【问题描述】:
我需要编写一个函数来生成 0 到 60 之间的 6 个随机数,然后将它们存储在给定的数组中。此外,此函数无法在返回的数组中存储重复项。好吧,我在 StackOverflow(感谢 Shouvik)上找到了一个非常有用的答案,我将在下面展示。
但是,伙计们,我最有这种逻辑但错过了两个核心要素
- 我试图在没有第二个临时数组的情况下这样做
- 我不知道如何在数组中找到重复项
我知道我必须对数组进行 .indexOF 我知道我必须 .push 一个新值到数组
这是我在找到解决方案之前的代码:
function gerarDezenas() {
let jogo = [];
for (var i = 0;i < 6;i++) {
jogo.push(Math.round(Math.random()*(1 , 60)+1));
if (jogo.indexOf(jogo) == //clueless)c{
.push() // ?? clueless either
}
}
return jogo
}
console.log(gerarDezenas())
所以我发现我需要另一个 Array 和 if 条件来比较它
function gerarDezenas() {
let jogo = [];
for (var i = 0; i < 6; i++) {
var temp = Math.round(Math.random()*(1 , 60)+1);
if (jogo.indexOf(temp) == -1) {
jogo.push(temp)
}
else {
i--;
}
}
return jogo
}
代码现在可以按预期工作,但我并不真正理解它,问题就在这里!我不知道这些行在做什么:
if (jogo.indexOf(temp) == -1) {
jogo.push(temp)
}
else {
i--;
}
有人可以向我解释一下 if 和 else 在做什么吗?
如果你通读了这篇文章,非常感谢!
【问题讨论】:
标签: javascript arrays random numbers