从数组中选择一个随机字符串。

32

可能重复:
JavaScript:从数组中获取随机值

有人能帮我解决这个问题吗?我有以下代码。

var textArray = [
    'song1.ogg',
    'song2.ogg'
]
audioElement.setAttribute('src', textArray);

我该如何随机选择其中一个字符串并将其播放到我的音频元素中?

如果有人能帮助我,我会很高兴的。


这是一个使用JQuery扩展程序实现的方法,你可以在这里查看:http://blog.mastykarz.nl/jquery-random-filter/ - Manual5355
2个回答

91
var textArray = [
    'song1.ogg',
    'song2.ogg'
];
var randomNumber = Math.floor(Math.random()*textArray.length);

audioElement.setAttribute('src', textArray[randomNumber]);

1
我在编程中发现了一个小拼写错误(length应该是小写),但我已经在我的答案中进行了修正。 - Gideon
是的,谢谢你告诉我。一开始它没有起作用,但现在它可以了。谢谢!顺便问一下,每行后面真的需要加分号吗? - Mausoleum
是的,在JavaScript中,您需要使用分号来终止每个语句。此外,如果Gidon的答案解决了您的问题,请将其标记为正确答案。 - jbabey
@jbabey:那是不正确的。JavaScript会自动插入分号,但由于它并不完美,它并不总是在正确的位置插入分号。因此,你不一定需要使用分号,但你真的真的应该使用。 - Felix Kling
谢谢大家。我已将其标记为正确。我忘记了由于时间跨度,我必须等待才能这样做... - Mausoleum

20
var randomIndex = Math.floor(Math.random() * textArray.length); 
var randomElement = textArray[randomIndex];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接