我正在创建一个质量调查,我想创建一种方法来随机化参与者在给定问题上看到的图像
这是我到目前为止的基本代码
var banner = document.getElementById('banner');
var picture = document.getElementById('picture');
banner.style.display = 'none';
picture.style.display = 'none';
images = [banner, picture];
function randomImage() {
var idx = Math.floor(Math.random(0, images.length - 1) * 10);
return images[idx];
};
var image1 = randomImage();
image1.style.display = 'block';
'picture'和'banner'是两个图像的ID。然而,这似乎不起作用,图像消失但随机图像不再出现。关于更好地实现此功能的任何建议?
答案 0 :(得分:3)
应该......
var idx = Math.floor(Math.random() * images.length);
...因为你出于某种原因将结果乘以10,最终结果的可能性很小,为0或1。
请注意,Math.random()不接受任何参数:它始终生成[0, 1)
范围内的数字。
答案 1 :(得分:2)
Math.random()
不接受任何参数,并返回0到1之间的数字。相反,请使用以下公式:
var randomNumber = Math.floor(Math.random() * MAX_PLUS_ONE);
MAX_PLUS_ONE
比您想要生成的最大数量多一个。在你的情况下:
var idx = Math.floor(Math.random() * images.length);
images.length
在这里工作,因为最后一个索引(最大数字idx
将)将比images.length