Я получаю очень странную неопределенную ошибку:TypeError: Не удается прочитать свойство "0" от неопределенных
function login(name,pass) {
var blob = Utilities.newBlob(pass);
var passwordencode = Utilities.base64Encode(blob.getBytes());
var ss = SpreadsheetApp.openById("");
var sheet = ss.getActiveSheet();
var data = sheet.getDataRange().getValues();
var i=1;
while (name != data[i][0]){
Logger.log(data[i][0]);
i++;
}
if (passwordencode == data[i][1]){
UserProperties.setProperties({
"name" :name,
"pass" : passwordencode
});
Logger.log("You are logged in");
}
else if (passwordencode != data[i][1]) {
Logger.log("You are not logged in");
UserProperties.setProperties({
"name" : "",
"pass" : ""
});
}
}
использования googlescript. Тот, который не определен, является оператором while, в котором while (name! = Data [i] [0]) утверждает, что вы не можете прочитать свойство «0» из undefined. Что странно в этом, если я удалю данные [i] [0] в инструкции while, он все равно работает в logger.log. И везде. Что, черт возьми, происходит?
EDIT: Если я изменяю while на оператор if, он также работает.
- это массив данных, основанный на 1? Обычно они начинаются с индекса 0 ... – rene
, вы должны проверить размерность родительского массива для существования, прежде чем пытаться использовать дочернее измерение, 'if (typeof (data [i])! ==" undefined ")' и предотвратить цикл while от выхода из массива bounds 'data [i] .length' будет указывать количество элементов в нем. –
Вы увеличиваете 'i' без учета границ. – user2736012