TypeError: Cannot read property “0” undefined
Je suis un très bizarre non défini erreur:
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" : ""
});
}
}
à l'aide de googlescript. Celui qui est indéfini est le rapport de moment où tout(nom != data[i][0]) affirmant que vous ne pouvez pas lire de propriété "0" undefined. Ce qui est bizarre à ce sujet, Si je supprime les données[i][0] dans l'instruction while, il travaille toujours dans l'enregistreur.journal. Et partout ailleurs. Ce que le diable se passe?
EDIT: Si je change le tout à une instruction si elle fonctionne également.
de données est un tableau qui est de base 1? Normalement, ils commencent à l'indice 0...
vous devriez vérifier le parent la dimension de la matrice pour l'existence avant d'essayer d'utiliser l'enfant dimension,
Vous êtes incrémentation
vous devriez vérifier le parent la dimension de la matrice pour l'existence avant d'essayer d'utiliser l'enfant dimension,
if(typeof(data[i])!=="undefined")
et de prévenir la boucle while de sortir des limites du tableau data[i].length
donnera le nombre d'éléments.Vous êtes incrémentation
i
sans égard aux limites.
OriginalL'auteur IGratch | 2013-09-22
Vous devez vous connecter pour publier un commentaire.
En incréments de la je. Ainsi, vous obtenez:
Il ressemble nom ne correspond à aucun des éléments de données. Donc, le tout toujours pas et que vous atteignez la fin du tableau. Je vous suggère d'utiliser pour boucle.
i
commence à 1 dans le code de l'OP, il n'data[0]
Je suis d'accord. La réponse est changé.
OriginalL'auteur Krasimir
Ressemble à ce que vous essayez de faire est d'accéder à la propriété '0' d'une valeur non définie dans votre 'données' tableau. Si vous regardez votre instruction while, il apparaît que ce qui se passe parce que vous êtes l'incrémentation " je " de 1 à chaque tour de boucle. Ainsi, la première fois, vous aurez accès, de données[1]", mais sur la boucle suivante, vous aurez accès aux données[2] " et ainsi de suite et ainsi de suite, indépendamment de la longueur du tableau. Cela vous fera finalement frappé un élément de tableau qui n'est pas défini, si vous n'avez jamais trouver un élément dans votre tableau avec la propriété '0', ce qui est égal à 'nom'.
Ammend votre déclaration à cet...
OriginalL'auteur Justin Russo
Vérifier votre indice de tableau pour voir si c'est accessible hors limite.
Une fois que j'ai consulté les catégories[0]. Plus tard, j'ai changé le nom de la matrice à partir des catégories de la catégorie, mais j'ai oublié de changer le point d'accès-à partir de catégories[0] [0], donc j'ai aussi cette erreur.
JavaScript a fait un mauvais message de débogage. Dans votre cas, je pense que, probablement, l'accès devient hors limite.
OriginalL'auteur Daniel C. Deng
Dans des circonstances normales,hors limite de tableau lorsque vous rencontrez l'erreur.
Donc,vérifiez uo votre indice de tableau.
OriginalL'auteur Lee Ran