0

我正在创建一个 qualtrics 调查,我想创建一种方法来随机化参与者将在给定问题上看到的图像

这是我到目前为止的基本代码

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。但是,这似乎不起作用,图像消失但随机图像不会重新出现。关于更好地实现此功能的任何建议?

4

2 回答 2

3

应该...

var idx = Math.floor(Math.random() * images.length);

...目前您出于某种原因将结果乘以 10,最终结果为 0 或 1 的可能性非常低。

请注意,Math.random()不接受任何参数:它总是生成一个[0, 1)范围内的数字。

于 2014-04-05T01:21:04.830 回答
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

于 2014-04-05T01:24:17.590 回答