2016-07-20 2 views
1

Ce que j'essaie de faire est de prendre le code ci-dessous et de le faire fonctionner de manière à pouvoir combiner des éléments de plusieurs tableaux en une seule phrase. Donc, par exemple, maintenant, si je lance ce code, il me donnera des éléments aléatoires de myarray, à savoir item1, 2, etc. Mais ce que je voudrais faire est de créer plusieurs tableaux et avoir le résultat d'une phrase qui comprend (dans ce order) éléments aléatoires de array1, array2, array3, etc. Fondamentalement, un générateur de phrases aléatoires utilisant des tableaux. Ce qui diffère entre cet élément dupliqué et celui proposé est que je sais déjà comment randomiser des éléments dans un seul tableau, mais que je voudrais combiner plusieurs éléments de tableau dans une structure de phrase unique. (Point de matrice1) + (point de array2) + (point array3)Combiner des éléments de tableau aléatoires dans la phrase

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" ></>

+2

double possible de [Comment randomiser (lecture aléatoire) un tableau JavaScript?] (Http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a- javascript-array) – nicael

Répondre

0

Tout ce que vous devez faire est de la créer 2 autres tableaux et faire la même chose pour obtenir un échantillon aléatoire mot puis les concaténer ensemble. Comme ceci:

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

Utilisation 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; 
} 

Voici le DEMO

0

Quelque chose comme ça?

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" ></>