簡體   English   中英

Javascript-從單詞的隨機數組創建段落

[英]Javascript - Create paragraph from random array of words

我想舉幾個字為例...

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(' ') );

這是可能的,這里是一個簡單而又骯臟的例子。 (對不起,我沒有更多的時間在atm上了)

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)];
}

http://jsfiddle.net/LavY5/

是的,將所有單詞放入Array 然后應用Fisher-Yates隨機播放算法 ,對單詞數組進行隨機播放/隨機化。 然后, 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);

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM