Javascript I';我正在尝试创建一个随机的schultz表(5x5)创建者webapp 工作 首先,我们将生成一个随机数 然后检查它是否已经生成 如果没有,我们将把它推入阵列 然后我们将把所有的数字加到表中 问题

Javascript I';我正在尝试创建一个随机的schultz表(5x5)创建者webapp 工作 首先,我们将生成一个随机数 然后检查它是否已经生成 如果没有,我们将把它推入阵列 然后我们将把所有的数字加到表中 问题,javascript,Javascript,当我通过打印数组的所有元素来测试代码时,任何一个随机元素总是包含一个未定义的值 代码 元素是值,您故意将值设为1-25。因此,当您将arr[element]登录到控制台时,其中之一就是arr[25]。由于arr的长度是25,因此超出了范围。您应该记录element,而不是arr[element] var arr=[]; 对于(;;){ var randomNum=Math.floor(Math.random()*26); 如果(randomNum!=0&(!arr.includes(rando

当我通过打印数组的所有元素来测试代码时,任何一个随机元素总是包含一个未定义的值

代码
元素
是值,您故意将值设为1-25。因此,当您将
arr[element]
登录到控制台时,其中之一就是
arr[25]
。由于
arr
的长度是
25
,因此超出了范围。您应该记录
element
,而不是
arr[element]

var arr=[];
对于(;;){
var randomNum=Math.floor(Math.random()*26);
如果(randomNum!=0&(!arr.includes(randomNum))){
arr.push(随机数);
}
如果(arr.length==25){
打破
}
}
arr.forEach(元素=>{
控制台日志(元素);

});
元素
是值,而不是键。因此,当您的键从0到24(数组是基于0的索引,长度不是)时,它将是一个介于1到25之间的数字,要修复它,您应该执行
console.log(element)
而不是
console.log(arr[element])
,或者只执行
console.log(arr)var arr =[];
for(;;){
   var randomNum = Math.floor(Math.random()*26);
   if(randomNum != 0 && (!arr.includes(randomNum))){
       arr.push(randomNum);
   }
   if(arr.length==25){
       break;
   }
}
arr.forEach(element => {
    console.log(arr[element]);
});