Javascript-从随机单词数组创建段落

Javascript-从随机单词数组创建段落,javascript,arrays,random,Javascript,Arrays,Random,我试着以一组单词为例 Apple Banana The Orange House Boat Lake Car And 我希望能够使用javascript将其中50个单词随机输出到一个div。这可能吗?如果可能的话,我应该考虑将它们放入数组或类似的东西中吗?是的,这是可能的,使用Math.random函数生成文本,使用innerHTML填充div 数组使获取单词更容易 var tokens = ['Apple', 'Banana', 'The' ...]; var text = ''; for

我试着以一组单词为例

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;
var标记=['Apple'、'Banana'、'The'…];
var text='';

对于(var i=0;iYes),可以使用
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;
var标记=['Apple'、'Banana'、'The'…];
var text='';

对于(var i=0;iYes),使用数组。要从这样的数组中获取随机字,请使用以下命令:

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段落=[];
对于(变量i=0;i<50;i++)
段落.push(getRandomWord());
$(“#我的容器”).text(段落.join(“”));

是,使用数组。要从这样的数组中获取随机单词,请使用以下命令:

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段落=[];
对于(变量i=0;i<50;i++)
段落.push(getRandomWord());
$(“#我的容器”).text(段落.join(“”));

这是可能的,这里有一个简单的例子。(对不起,我没有更多的时间了)

var words=[“苹果”、“啤酒”、“蛋糕”、“土豆”、“橙子”],
div=document.getElementById('foo');
对于(i=0;i<50;i++){
div.innerHTML+=''+单词[Math.floor(Math.random()*words.length)];
}


这是可能的,下面是一个快速而肮脏的例子。(对不起,我没有更多的时间了)

var words=[“苹果”、“啤酒”、“蛋糕”、“土豆”、“橙子”],
div=document.getElementById('foo');
对于(i=0;i<50;i++){
div.innerHTML+=''+单词[Math.floor(Math.random()*words.length)];
}


是的,将所有单词放入
数组中
。然后应用,对单词数组进行无序/随机化。然后,从指定大小的数组中选取
片段
,并将这些单词打印到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);

是,将所有单词放入
数组中
。然后应用,对单词数组进行无序/随机化。然后,对指定大小的数组进行
切片
,并将这些单词打印到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);

当然这是可能的。从一个数组开始…如果你有任何具体问题,你可以回来找我们。当然这是可能的。从一个数组开始…如果你有任何具体问题,你可以回来找我们。他有没有说,他在使用jQuery?:)他有没有说,他在使用jQuery?:)我认为这不对,剩下的最后一个位置已经被洗牌了,与自己交换是没有用的。看看最后一张表,我也认为洗牌对这个案子来说有点分散注意力。
n--
我理解,但似乎有点危险,我想换一句话。不管怎样,如果你能说服我需要她,我会投赞成票;)我认为“随机化数组”的问题是“洗牌数组”的另一种说法,Fisher Yates就是为此而设计的。因此,如果你有一个数组,比如说,1000个单词,你想随机选取N个单词,你有两个选择:1)进行N次迭代,每次随机选取一个单词,并且必须担心每次选取相同单词的可能性;2) 随机化/洗牌数组,然后选择前N个单词(这也避免了元素的重复)。我认为这是不对的,最后剩余的位置已经洗牌了,与自身交换是没有用的。看看最后一张表,我也认为洗牌对这个案子来说有点分散注意力。
n--
我理解,但似乎有点危险,我想换一句话。不管怎样,如果你能说服我需要她,我会投赞成票;)我认为“随机化数组”的问题是“洗牌数组”的另一种说法,Fisher Yates就是为此而设计的。因此,如果你有一个数组,比如说,1000个单词,你想随机选取N个单词,你有两个选择:1)进行N次迭代,每次随机选取一个单词,并且必须担心每次选取相同单词的可能性;2) 随机化/无序排列数组,然后选择前N个单词(这也避免了元素的重复)。