我有以下功能:
var randomImages = ["bgr1","bgr2","bgr3","bgr4","bgr5","bgr6"];
var rndNum = Math.floor(Math.random() * randomImages.length);
$(".myDiv").css({ background: "url(/images/" + randomImages[rndNum] + ".gif)" });
由于除了最后一个数字值以外,所有图像都具有相同的名称,我不能简化这个吗?
答案 0 :(得分:3)
var numImages = 6;
var rndNum = Math.floor(Math.random() * numImages) + 1;
$(".myDiv").css({ background: "url(/images/bgr" + rndNum + ".gif)" });
答案 1 :(得分:1)
是的,你可以。请注意,您可能希望定义一个常量,而不是仅使用幻数6,但这是个主意。
var rndNum = Math.floor(Math.random() * 6) + 1;
$(".myDiv").css({ background: "url(/images/bgr" + rndNum + ".gif)" });
答案 2 :(得分:1)
这看似显而易见但如果您知道有多少图像,则可以将randomImages.length替换为常量,例如: 5为了论证,那么你不需要一个数组,所以它只是一行:
$(".myDiv").css( { background: "url(/images/bgr" + Math.ceil(Math.random() * 5) + ".gif)" } );
注意:math.ceil会更好,因为你不需要+1。