random - JavaScript (google script) function sometimes works, sometimes not : what's wrong? -
i have array containing values (values google sheet), , 2 functions generate random values pick values array :
the random function #1 :
function hasardsingplur(){ var values = [0,1]; return (values[math.floor(math.random()*2)]); } random generator function #2 :
function hasardnombremax(){ return (math.floor((math.random() * nombremax) + 1)) } the function random elements :
function generate() { var nom = noms[hasardnombremax(nombremax)][hasardsingplur()]; logger.log(nom); } if test generate() function hundred times, goes end , outputs 100 values, stops after random number of values...
function test(){ for(var = 0 ; < 100 ; i++){ logger.log(generate()); } } i error
typeerror: impossible read property "1.0" undefined. strange behavior, , don't understand why.
edit : here entire code :
var ss = spreadsheetapp.getactive(); var reservoir = ss.getsheetbyname("réservoir"); var generateur = ss.getsheetbyname("générateur"); var nombremax = reservoir.getlastrow()-1; // 0 noms au singulier, 1 noms au pluriel, 2 genre // 3 adjectifs (masc. sing.), 4 adjectifs(masc. pluriel), 5 adjectifs (fém. sing), 6 adjectifs (fém. plur.), // 7 phrases subordonnées sujet singulier 8 phrases subordonnées sujet au pluriel, // 9 groupes prépositionnels, // 10 verbes principaux (3e pers. sing), 11 verbes principaux (3e pers. pluriel) var noms = reservoir.getrange(2, 1, nombremax, 3).getvalues(); var ajectifs = reservoir.getrange(2, 4, nombremax, 4).getvalues(); var psubs = reservoir.getrange(2, 8, nombremax, 2); var grpreps = reservoir.getrange(2, 10, nombremax, 1).getvalues(); function generate() { var nom = noms[hasardnombremax(nombremax)][hasardsingplur()]; logger.log(nom); } // renvoie 1 ou 2 pour choisir si singulier ou pluriel, masculin ou féminin function hasardsingplur(){ var values = [0,1]; return (values[math.floor(math.random()*2)]); } // renvoie un nombre au hasard pour choisir un élément au hasard dans le tableau function hasardnombremax(){ return (math.floor((math.random() * nombremax) + 1)) } function test(){ for(var = 0 ; < 100 ; i++){ logger.log(generate()); } }
Comments
Post a Comment