我是新手google script
,我想比较两张纸上的两行,如果任何单元格数据值匹配,它将增加一个值。但是我遇到这样的错误,
TypeError:无法从未定义中读取属性“ 0”。
这是我的代码,
function onFormSubmit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form Responses 1");
var ans_sheet = ss.getSheetByName('Correct_Answers');
var getValues = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues();
var realValues = ans_sheet.getRange(2, 1, ans_sheet.getLastRow(), ans_sheet.getLastColumn()).getValues();
for (var i in getValues) {
for (var j in getValues[i]) {
var matched = 0;
if (getValues[i][j] == realValues[i][j]) {
matched++;
} else {
getValues.push(1);
}
}
}
我知道我在这里做错了,但是由于我是新手,所以我无法弄清楚。急需专家的帮助。谢谢。
这可能是因为两个范围具有不同的长度,或者是因为您要将1附加到第一个数组中,在这种情况下,也没有要下标的内容。
在某些时候,您正在尝试访问不在其他范围内的行的第一列(索引0)或不存在的1的第一列。
由于您要遍历getValues,因此可以在循环开始时进行检查。
for (var i in getValues) {
if(i == realValues.length){break;}
for (var j in getValues[i]) {
if(j == realValues[j].length){break;}
var matched = 0;
if (getValues[i][j] == realValues[i][j]) {
matched++;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句