我试图以一组单词为例......
Apple
Banana
The
Orange
House
Boat
Lake
Car
And
我希望能够使用javascript随机输出50个这样的单词到div。这是可能的,如果是这样,我应该考虑将它们放入数组或类似的东西吗?
答案 0 :(得分:2)
是的,可以使用Math.random
函数生成文本,innerHTML
填充div。
数组使得更容易获得单词。
var tokens = ['Apple', 'Banana', 'The' ...];
var text = '';
for (var i=0; i<50; i++) {
text += tokens[Math.floor(Math.random()*tokens.length)];
}
document.getElementById('myDiv').innerHTML = text;
答案 1 :(得分:2)
是的,使用数组。要从这样的数组中获取随机单词,请使用以下命令:
function getRandomWord() {
var words = ['Apple','Banana','The','Orange','House','Boat','Lake','Car','And'];
return words[Math.floor(Math.random() * words.length)];
}
然后在你喜欢的任何程度上调用该函数。
var paragraph = [];
for(var i = 0; i < 50; i++)
paragraph.push(getRandomWord());
$('#my-container').text( paragraph.join(' ') );
答案 2 :(得分:1)
这是可能的,这是一个快速而肮脏的例子。 (对不起,我已经没有时间了)
var words = ['apple', 'beer', 'cake', 'potato', 'orange'],
div = document.getElementById('foo');
for(i = 0; i < 50; i++) {
div.innerHTML += ' ' + words[Math.floor(Math.random() * words.length)];
}
答案 3 :(得分:1)
是的,将所有单词放在Array
中。然后应用Fisher-Yates shuffle algorithm,对你的单词数组进行随机/随机化。然后,获取指定大小的slice
数组,并将这些单词打印到HTML:
var words = [ "Apple", "Banana", "The", "Orange", "House", "Boat", "Lake", "Car", "And" ];
function fisherYates (arr) {
var n = arr.length;
while (n) {
var j = Math.floor(Math.random() * n--);
var temp = arr[n];
arr[n] = arr[j];
arr[j] = temp;
}
return arr;
}
fisherYates(words); // shuffle
var randomParagraph = words.slice(0, 5).join(" "); // take 5 random words
document.write(randomParagraph);
<强> DEMO 即可。