为了账号安全,请及时绑定邮箱和手机立即绑定

失去逻辑!javaScript中的随机唯一数字

失去逻辑!javaScript中的随机唯一数字

至尊宝的传说 2022-12-02 10:38:59
我需要编写一个函数来生成 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())所以我发现我需要另一个数组和 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 在做什么吗?如果您阅读了帖子,非常感谢!附图请不要恨我
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

/*Check whether array named jogo has the temp element inside it, if not add the temp element to jogo. */

if (jogo.indexOf(temp) == -1){

    jogo.push(temp)

    }


/*When you are inside this if else block the i's value must have been increased, now if

temp is not being inserted because it's already there in the array, decrement i so that the if else block again runs with the same I what it was earlier before increment.

*/

    else {

      i--;

    }


查看完整回答
反对 回复 2022-12-02
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

此代码循环遍历整个数组以检查随机数是否在数组内。但如果不是,它将输出 -1 表示当前随机数没有重复

if (jogo.indexOf(temp) == -1)

虽然此代码只是反转循环,因此它取消了 i++。

i--;


查看完整回答
反对 回复 2022-12-02
?
烙印99

TA贡献1829条经验 获得超13个赞

如果 temp(随机数)不在 jogo 数组中(如果找不到值,indexOf 总是返回 -1)


if (jogo.indexOf(temp) == -1)

const arr = ["A","B","C"];

console.log(arr.indexOf("D"));

console.log(arr.indexOf("C"));


然后将其添加到数组中


jogo.push(temp)

否则重做循环,希望得到一个不在 jogo 数组中的数字(-- 会抵消 ++ )


 i--;

let i = 5;

i--

i++

console.log(i);


查看完整回答
反对 回复 2022-12-02
  • 3 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信