因此,出于某种原因,count [无论如何]都会返回NaN。为什么?
var i;
var count = new Array(12);
for( i = 0; i<999;i++)
{
var firstDice = Math.floor(Math.random() * 7);
var secondDice= Math.floor(Math.random() * 7);
var total = firstDice + secondDice;
count[total]++;
}
console.log(count[3]);
for(index=2; index<=12; index++)
{
console.log("EL NUMERO "+index+" SALIO "+ count[index]+" VECES MIVIVI");
}
答案 0 :(得分:2)
您没有初始化数组,请执行以下操作:
var count = Array.from({ length: 13 }, () => 0);
或
var count = new Array(13).fill(0);
@ ibrahim-mahrir在评论中建议。
还要注意,您需要13个元素,而不是12个(0、1、2 ... 12)。
const count = Array.from({ length: 12 }, () => 0);
for(let i = 0; i<999;i++) {
const firstDice = Math.floor(Math.random() * 7);
const secondDice= Math.floor(Math.random() * 7);
const total = firstDice + secondDice;
count[total]++;
}
console.log(count[3]);
for(let index=2; index<=12; index++) {
console.log("EL NUMERO "+index+" SALIO "+ count[index]+" VECES MIVIVI");
}
这是因为,当您使用new Array(12);
时,会创建一个未定义的数组,因此,当您对未定义的值进行++
时,仍然会有一个未定义的值。
答案 1 :(得分:2)
您可以采用包含13个元素的数组,因为您有13个索引。然后,您必须将值1
... 6
作为骰子面的随机数。
var i,
count = Array.from({ length: 13 }, _ => 0),
firstDice, secondDice, total;
for (i = 0; i < 999; i++) {
firstDice = Math.floor(Math.random() * 6 + 1);
secondDice = Math.floor(Math.random() * 6 + 1);
total = firstDice + secondDice;
count[total]++;
}
console.log(count[3]);
for (i = 2; i <= 12; i++) {
console.log("EL NUMERO " + i + " SALIO " + count[i] + " VECES MIVIVI");
}