0

我试图以一组单词为例...

Apple
Banana
The
Orange
House
Boat
Lake
Car
And

我希望能够使用 javascript 将这些单词中的 50 个随机输出到 div。这可能吗?如果可以,我应该考虑将它们放入数组或类似的东西中吗?

4

4 回答 4

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;
于 2012-09-07T10:47:44.907 回答
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(' ') );
于 2012-09-07T10:48:41.517 回答
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)];
}

​</p>

http://jsfiddle.net/LavY5/

于 2012-09-07T10:53:15.583 回答
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);

演示。​</p>

于 2012-09-07T10:53:43.867 回答