将随机数组项合并为句子

问题描述 投票:1回答:3

我正在尝试做的基本上是采用下面的代码并使其工作,以便我可以将几个数组中的项组合成一个句子。所以,例如,现在,如果我运行此代码,它将给我随机项目来自myarray,即item12等。但我想要做的是创建几个数组,结果是一个句子,包括(在这来自array1array2array3等的随机项目。基本上,使用数组的随机句子生成器。这个和建议的重复项之间的不同之处在于我已经知道如何在单个数组中随机化项目,但是想要将几个数组项组合成一个句子结构。 (array1 item) + (array2 item) + (array3 item)

 function GetValue()
{
var myarray= new Array("item1","item2","item3");
var random = myarray[Math.floor(Math.random() * myarray.length)];
document.getElementById("message").innerHTML=random;
}

function GetValue()
{
    var myarray= new Array("item1","item2","item3");
    var random = myarray[Math.floor(Math.random() * myarray.length)];
   document.getElementById("message").innerHTML=random;
}
<input type="button" id="btnSearch" value="Search" onclick="GetValue();" />
<p id="message" ></>
javascript arrays random sentence
3个回答
0
投票

你所要做的就是创建另外两个数组并做同样的事情来得到一个随机的单词然后将它们连接在一起。像这样:

function GetValue() {
  var myarray1 = new Array("item1", "item2", "item3");
  var myarray2 = new Array("item4", "item5", "item6");
  var myarray3 = new Array("item7", "item8", "item9");
  var random1 = myarray1[Math.floor(Math.random() * myarray1.length)];
  var random2 = myarray2[Math.floor(Math.random() * myarray2.length)];
  var random3 = myarray3[Math.floor(Math.random() * myarray3.length)];
  var output = random1 + ' ' + random2 + ' ' + random3;

  document.getElementById("message").innerHTML = output;
}
<input type="button" id="btnSearch" value="Search" onclick="GetValue();" />
<p id="message">
  </>

0
投票

使用splice

var myarray= new Array("item1","item2","item3");
while(myarray.length>0){
    var random = myarray.splice(Math.floor(Math.random() * myarray.length));
   document.getElementById("message").innerHTML += ' ' + random;
}

这是DEMO


0
投票

像这样的东西?

var fragments = [];
fragments.push(["I","You","We","He","She"]);
fragments.push(["called","left","saw","loved","hated"]);
fragments.push(["the","a","some","another"]);
fragments.push(["store","person","rabbit","dog"]);

function getSentence() {
    var sentence = '';
    for (var i=0; i<fragments.length; i++) {
        sentence += fragments[i][Math.floor(Math.random() * fragments[i].length)] + ' ';
    }
    document.getElementById("message").innerHTML = (sentence.trim() + '.');
}
<input type="button" id="btnSearch" value="Search" onclick="getSentence();" />
<p id="message" ></>
© www.soinside.com 2019 - 2024. All rights reserved.