我正在创建一个质量调查,我想创建一种方法来随机化参与者将在给定问题中看到的图像
这是我到目前为止的基本代码
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';
其中"图片"和"横幅"是两个图像的 ID。但是,这似乎不起作用,图像消失了,但随机图像不会再次出现。关于制作此功能的更好方法的任何建议?
应该是...
var idx = Math.floor(Math.random() * images.length);
。目前,由于某种原因,您将结果乘以 10,最终结果为 0 或 1 的可能性很小。
请注意,Math.random() 不接受任何参数:它总是在[0, 1)
范围内生成一个数字。
Math.random()
不带任何参数,并返回一个介于 0 和 1 之间的数字。 请改用以下公式:
var randomNumber = Math.floor(Math.random() * MAX_PLUS_ONE);
其中MAX_PLUS_ONE
比要生成的最大数量多 1。 在您的情况下:
var idx = Math.floor(Math.random() * images.length);
images.length
在这里工作,因为最后一个索引(idx
的最大数字)将比images.length
少一个