我有一个包含值的数组(来自google工作表的值),以及两个生成随机值以从数组中选择值的函数:
随机函数#1:
function hasardSingPlur(){
var values = [0,1];
return (values[Math.floor(Math.random()*2)]);
}
随机生成器函数#2:
function hasardNombreMax(){
return (Math.floor((Math.random() * nombreMax) + 1))
}
获取随机元素的函数:
function generate() {
var nom = noms[hasardNombreMax(nombreMax)][hasardSingPlur()];
Logger.log(nom);
}
如果我测试generate()函数一百次,它有时会结束并输出100个值,但它有时会在随机数值之后停止...
function test(){
for(var i = 0 ; i < 100 ; i++){
Logger.log(generate());
}
}
我收到错误
TypeError: Impossible to read property "1.0" from undefined.
奇怪的行为,我真的不明白为什么。
编辑:这是整个代码:
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 i = 0 ; i < 100 ; i++){
Logger.log(generate());
}
}