我正在制作纸牌游戏但是现在我遇到了随机数生成器的问题。我正在创建具有100个选项的新数组,然后从该数组中随机选择一个数字。但是,当我document.write correctNum时,我得到了未定义。
var numList = new Array(100);
var correctNum = numList[Math.floor(Math.random()*numList.length)];
document.write(correctNum);
答案 0 :(得分:1)
你必须用一些东西填充数组。您所做的只是声明它的大小,因为JavaScript中的数组是动态的(也就是说,它们的大小可以在它们被创建之后增长和缩小),所以预先声明一个大小并不是那么有用:
var numList = [];
// Fill the array with numbers from 0 to 99
for(var i = 0; i < 100; ++i){
numList.push(i);
}
var correctNum = numList[Math.floor(Math.random()*numList.length)];
// Don't use document.write. It will wipe out the existing document in
// favor of the new content. Either write the to the console (for debugging)
// or inject data into pre-existing element that's already on the page
console.log(correctNum);
&#13;
答案 1 :(得分:0)
数组numList包含100个undefined。使用实际数据填充数组后,其余逻辑将为您提供所需的内容。
例如:
for(var i=0; i<numList.length; i++){
numList.push(i);
}
答案 2 :(得分:0)
new Array(100)
返回包含100个未定义元素的数组。
var numList = new Array(100);
console.log(numList);
&#13;
如果你想从中获取一个随机数,你必须填写它或者只是制作一个包含你喜欢的数字的数组。
var numList = Array.apply(null, {length: 100}).map(Number.call, Number);
var correctNum = numList[Math.floor(Math.random()*numList.length)];
document.write(correctNum);
&#13;
答案 3 :(得分:0)
由于你的阵列目前是空的,我建议你填写你想要的任何数字。另一个解决方案,如果您只想从1-100中选择一个随机数,您的代码将使用下面的代码,该代码将返回1到100之间的随机数。
Math.floor((Math.random() * 100) + 1);
祝你好运! :)
答案 4 :(得分:0)
你的阵列仍然是空的。
通过使用构造函数arr = new Array(<integer>)
,它只获得长度,但索引中没有值。
var arr = new Array(100);
console.log(arr.length); // 100
console.log(arr[1]); // undefined