在网站上,我希望当有人单击按钮时显示一张随机图片。图片的 URL 包含在 JavaScript 文件中的数组中。到目前为止它工作正常,但是我想让它一旦出现图片,它就无法再次显示,直到数组中的所有其他项目都出现为止。换句话说,我不希望任何图片出现两次,直到数组中的所有图片都完成为止。我应该在下面的代码中添加什么?
var images =
["sample1.png",
"sample2.png",
"sample3.png",
"sample4.png",
"sample5.png",
"sample6.png",
"sample7.png"];
var rand = images[Math.round(Math.random() * (images.length - 1))];
function test(){
rand = images[Math.round(Math.random() * (images.length - 1))];
document.getElementById("picture").style.background = "url('/images/"+rand+"') no-repeat center center";
}
最佳答案
你可以像这样使用它,
跟踪还剩下哪些可能性,并在没有新的可能性时重置。
在本例中我使用了字符串数组,但原理是相同的:)
jsfiddle:http://jsfiddle.net/D3XSY/
var messages = ['hello', 'there', 'this', 'is', 'a', 'test'];
var available = [].concat(messages);
var interval;
function update(id) {
if (available.length === 0) {
available = [].concat(messages);
}
var ri = Math.floor(Math.random() * available.length);
var msg = available[ri], el = document.getElementById(id);
if (el) {
el.innerHTML = msg;
}
available.splice(ri, 1);
}
interval = setInterval(update.bind(null, 'promo'), 500);
关于javascript - 如何才能使数组中的值一旦被使用,就不能再次使用,直到数组完成为止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127566/