我试图以一组单词为例...
Apple
Banana
The
Orange
House
Boat
Lake
Car
And
我希望能够使用 javascript 将这些单词中的 50 个随机输出到 div。这可能吗?如果可以,我应该考虑将它们放入数组或类似的东西中吗?
我试图以一组单词为例...
Apple
Banana
The
Orange
House
Boat
Lake
Car
And
我希望能够使用 javascript 将这些单词中的 50 个随机输出到 div。这可能吗?如果可以,我应该考虑将它们放入数组或类似的东西中吗?
是的,这是可能的,使用该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;
是的,使用数组。要从这样的数组中获取随机单词,请使用以下命令:
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(' ') );
这是可能的,这是一个快速而肮脏的例子。(对不起,我没有更多的时间自动取款机)
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)];
}
</p>
是的,把你所有的话放在一个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);
演示。</p>