我for
循环alerts
来自array
的{{1}}字符串,我想知道我如何alert
他们randomly
,所以它会运行gamesNames.length
}次并在JavaScript中每次以不同的随机顺序显示它们(不重复它们)?
for (var i = 0; i < gamesNames.length; i++) {
alert (gamesNames[i].Name + gamesNames[i].year );
}
答案 0 :(得分:1)
创建一个包含索引和随机数的项目的数组。通过对随机数进行排序来对它们进行排序,并使用索引来提醒项目:
var idx = [];
for (var i = 0; i < gamesNames.length; i++) {
idx.push({ idx: i, rnd: Math.floor(Math.random() * 100000) });
}
idx.sort(function(x,y){ return x.rnd - y.rnd; });
for (var i = 0; i < idx.length; i++) {
var j = idx[i].idx;
alert (gamesNames[j].Name + gamesNames[j].year);
}
答案 1 :(得分:1)
这是主要想法的链接http://www.javascriptkit.com/javatutors/arraysort.shtml,在Javascript中
这是代码
...
gamesNames.sort(function() {return 0.5 - Math.random()}) ;
for (var i = 0; i < gamesNames.length; i++) {
alert (gamesNames[i].Name + gamesNames[i].year );
}
...
我希望这会有所帮助。
答案 2 :(得分:1)
您可以轻松地使用while-loop
与array.splice:
var array = ["1", "2", "3", "4"];
while(array.length > 0)
{
// Get a random index
var index = Math.floor(Math.random() * array.length);
// Append it to the DOM (or do whatever you want with it)
$("body").append($("<p />").html(array[index]));
// Remove it from the array
array.splice(index, 1);
}