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个单词(这也避免了元素的重复)。