JavaScript(谷歌脚本)功能有时会起作用,有时不会:错误的是什么?

时间:2017-04-07 19:23:47

标签: javascript random google-sheets

我有一个包含值的数组(来自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());
      }
}

0 个答案:

没有答案