我正在使用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
中深入探索JavaScript。我所知道的是有人说Math.Round
给你一个不准确的数字(即1.5可以舍入到1),但我不认为它适用于此。任何人都可以告诉我,这是导致问题或其他原因的陈述吗?
答案 0 :(得分:1)
这是计算RandomContentDiv数组索引的方式。
您的代码已在此处获取控制台中未定义的数字...
cd = RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
有时Math.random()会给你一个接近零的非常小的数字,这转化为你试图访问未定义的RandomContentDiv [-1]。
在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random查看示例getRandomInt函数。这是一个如何随机选择0和RandomContentDiv.length-1之间的整数的例子。