Javascript Google脚本类型错误无法读取属性
我正在写一个基于棒球阵容的休闲项目。我试图根据随机玩家(行)放置位置编号。我检查了正确的位置(2=捕手,3=第一个底部等),然后将数字放在下面的自由单元格中。但是,我一直收到这个错误: TypeError:无法从未定义中读取属性“1”。(第38行,文件“PBR”) 我想我需要以某种方式重置这些值,并尝试查看其他线程,但我不能完全理解。它只在大约50%的时间内有效,可能是因为随机化的结果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
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添加到数组中。长度。谢谢!我非常感谢您的帮助,我根本没有查看随机函数