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)你的方法不好。当然,它“有效”,但如果你想要一个随机列表多达100个,它将以指数的速度增长。取而代之的是,只需要取一个从1到25的数字数组,然后洗牌这个数组。是的,它成功了,谢谢!!别介意我迟到了两个月
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]);
});