我使用Javascript从类中设置元素的背景图像。这些代码大部分都能工作,但是在运行代码时,我会得到一个未定义的变量。我使用Math.Random()来获取变量的数字。我的代码中的问题点(或者至少我认为是这样):
var RandomContentDiv = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
var cd = RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
console.log(cd);我使用console.log(cd);来查看输出的数字。我得到了结果,但是结果对解决这个问题没有用。我将测试运行代码2次,以向您展示我通常会得到什么。
测试1:
Number: 5
Number: 13
Number: 10
Number: 1
Number: 10
Number: 6
Number: 10
Number: 3
Number: 2
Number: 15
Number: 2
Number: 3
Number: 8
Number: 15
Number: 12
Number: 7
Number: 9
Number: 2
Number: 0
Number: 8
Number: 10
Number: 3
Number: 14
Number: 13
Number: 9
Number: 1
Number: 15
Number: 13
Number: 3
Number: 2
Number: 4
Number: 14
Number: 11
Number: 0
Number: 15
Number: 7
Number: 6
Number: 1
Number: 4
Number: 7
Number: 8
Number: 6
Number: 7
Number: 4
Number: 10
Number: 0
Number: 12
Number: 11
Number: 2
Number: 7
Number: 2
Number: 11
Number: 13
Number: 6
Number: 0
Number: 5
Number: 1
Number: 2
Number: 7
Number: 8
Number: 2
Number: 13
Number: 4
Number: 3
Number: 7
Number: 15
Number: 5
Number: 1
Number: 0
Number: 2
Number: 11
Number: 8
Number: 10
Number: 12
Number: 11
Number: 1
Number: 12
Number: 11
Number: 12
Number: 0
Number: 6
Number: 8
Number: 1
Number: 11
Number: 1
Number: 12
Number: undefined测试2:
Number: 13
Number: 2
Number: 9
Number: 0
Number: 2
Number: 0
Number: 11
Number: 3
Number: 5
Number: 3
Number: 11
Number: 3
Number: 14
Number: 15
Number: 9
Number: 8
Number: 11
Number: 12
Number: 10
Number: 3
Number: 9
Number: 0
Number: undefined我认为问题来自于这样的说法:RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];,但我不知道如何解决它,因为我还没有深入研究Math for JavaScript。我只知道有人说了一些关于Math.Round的东西,当四舍五入时给你一个不准确的数字(即1.5可以整到1),但我认为它不适用于此。有人能告诉我,是这句话引起了问题还是别的什么吗?
发布于 2017-10-31 01:12:32
这是计算RandomContentDiv数组索引的方法。
在您的代码中,您将得到控制台中未定义的号码.
cd = RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
有时,Math.random()给出的数字非常小,接近于零,这就意味着您试图访问RandomContentDiv-1,这是未定义的。
看看getRandomInt函数在Objects/Math/random上的例子。这是一个例子,说明如何在0和RandomContentDiv.long-1之间随机选择一个整数。
https://stackoverflow.com/questions/47026439
复制相似问题