Javascript Google脚本类型错误无法读取属性

Javascript Google脚本类型错误无法读取属性,javascript,typeerror,google-sheets-api,Javascript,Typeerror,Google Sheets Api,我正在写一个基于棒球阵容的休闲项目。我试图根据随机玩家(行)放置位置编号。我检查了正确的位置(2=捕手,3=第一个底部等),然后将数字放在下面的自由单元格中。但是,我一直收到这个错误: TypeError:无法从未定义中读取属性“1”。(第38行,文件“PBR”) 我想我需要以某种方式重置这些值,并尝试查看其他线程,但我不能完全理解。它只在大约50%的时间内有效,可能是因为随机化的结果 function placePos(posNum){ var j; rng = newSheet.ge

我正在写一个基于棒球阵容的休闲项目。我试图根据随机玩家(行)放置位置编号。我检查了正确的位置(2=捕手,3=第一个底部等),然后将数字放在下面的自由单元格中。但是,我一直收到这个错误:

TypeError:无法从未定义中读取属性“1”。(第38行,文件“PBR”)

我想我需要以某种方式重置这些值,并尝试查看其他线程,但我不能完全理解。它只在大约50%的时间内有效,可能是因为随机化的结果

function placePos(posNum){
  var j;
  rng = newSheet.getDataRange();
  array = rng.getValues();
  j = Math.floor(Math.random() * (array.length + 1));

  pos1 = array[j][1];
  pos2 = array[j][2];

  switch(posNum){
    case 2:
  if(((pos1 == 'C') || (pos2 == 'C')) && (newSheet.getRange(j+1, 4).isBlank())){
    newSheet.getRange(j+1, 4).setValue(posNum);
    delete pos1;
    delete pos2;
  }
  else{
    delete pos1;
    delete pos2;
    placePos(2);
  }
  break;

    case 3:
  if(((pos1 == '1B') || (pos2 == '1B')) && (newSheet.getRange(j+1, 4).isBlank())){
    newSheet.getRange(j+1, 4).setValue(posNum);
    delete pos1;
    delete pos2;
  }
  else{
    delete pos1;
    delete pos2;
    placePos(3);
  }
  break;


}
}

我调用了placePos函数两次,但会调用更多的函数来填充整个第1-9列。我曾尝试查找多个其他线程以寻求帮助,但未能找到有帮助的解决方案。

Math.random()
生成一个范围为[0,1]的数字。如果数组长度为10,这意味着您的有效索引为0-9。您的等式将为您提供
[0,1)*(11)的下限
,最大值为10。但是,最大索引为9。解决方案是不要将1添加到数组中。长度。谢谢!我非常感谢您的帮助,我根本没有查看随机函数