【问题标题】:undefined elements inside an array which has randomized numbers inside it数组中未定义的元素,其中包含随机数
【发布时间】:2021-05-01 19:22:18
【问题描述】:

所以我创建了这个脚本来生成一个由 5 个随机数组成的数组,其中的数字必须是唯一的,但我得到了 +2 个未定义的元素。有 5 个数字是唯一的,但数组的长度不再是 5

let arr = [];
while (arr.length <= 5) {
  let x = Math.floor(Math.random() * 11);
  if (arr.includes(x) === false) {
    arr.push(x);
  }
  arr.length += 1;
}
console.log(arr);

提前谢谢各位。

【问题讨论】:

  • arr.length += 1;你的推送会增加长度,所以不需要这样做。
  • 这是一种不好的做法。将所有数字组成一个数组。随机排列数组。取前 5 个元素。
  • 这能回答你的问题吗:) stackoverflow.com/questions/5836833/…

标签: javascript


【解决方案1】:

您应该删除arr.length += 1 行。每次推送新元素时,数组长度会自动增加,无需自行修改:这是一种不好的做法。

【讨论】:

  • 我没注意到,谢谢你的快速反应!
【解决方案2】:

长度不是 5,因为这个循环运行了 6 次,arr.length = 0,1,2,3,4,5。并且您有 3 个未定义的元素,因为 ( arr.length += 1; ) 这会跳过第 1、3、5 步。

【讨论】:

    【解决方案3】:

    let arr = [];   
    while (arr.length<5){
     let x = Math.floor(Math.random()*11);
     if (arr.includes(x) === false){
         arr.push(x);
    }
    }
    console.log(arr);

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 2019-11-06
      • 2013-06-17
      • 2015-02-08
      相关资源
      最近更新 更多