La création de hachage tableau dans Google Apps Script
J'ai essayé de travailler avec Trello et les Google Apps Script de cette semaine. Je suis en train de créer un tableau de hachages que je peux utiliser pour charger la feuille de calcul. Google apps script n'est pas, comme le typique du code javascript de la création de tables de hachage. J'ai regardé les docs, mais ils n'ont rien comme les hachages...ils disent:
var object = [];
var object1 = {};
object.push(object1);
Cela ne marchera pas parce que je suis essentiellement d'essayer de faire quelque chose comme:
var hash={name: , label: };
var n= someNumber;
var l= someLabel
var hash.push(name: n, label: l);
Essentiellement, qui est le code que j'ai droit. Mais ici, c'est l'ensemble de ma fonction:
function getData(){
var list={};
//get the list of delivered cards from Trello
var listRequest = authorizeToTrello(); //get authorization
var result = UrlFetchApp.fetch("https://trello.com/1/lists/4fea3a2c3a7038911ebff2d8/cards",
listRequest);//fetch list
var listOfCards = Utilities.jsonParse(result.getContentText());//Google app utility format json
//outer loop to iterate through list of Cards
for(var i=0; i < listOfCards.length; i++){
var cardId = listOfCards[i].id; //get the id of a single card
var l = listOfCards[i]["label"]; //get the label for the our structure
//get a json object for a single card within the list of cards iteration
var cardRequest = authorizeToTrello();
var getCard = UrlFetchApp.fetch("https://trello.com/1/cards/" + cardId + "/actions", cardRequest);
var singleCard = Utilities.jsonParse(getCard.getContentText());
//inner loop to iterate the single cards JSON objects
for(var j=0; j < singleCard.length; j++) {
if(singleCard[j].data != undefined && singleCard[j].data.listAfter != undefined)
{
var str = singleCard[j]["data"]["listAfter"]['name'];
if(str === "Delivered Q3 2012"){
var n = singleCard[j]['memberCreator']['fullName'];
}
}
}
//push the data to list
list.push(n,l);
}
return name, label; //return list for output
}
Vous devez vous connecter pour publier un commentaire.
La lecture de la question, j'ai compris que l'auteur a besoin de savoir comment créer un tableau associatif dans un GAZ. Si elle est correcte, alors voici quelques liens (ici et ici) et un exemple de code est ci-dessous.
Si l'auteur doit vraiment
alors il ya un couple de façons selon l'algorithme de hachage est nécessaire.
Voici un exemple de comment créer un tableau de hachages en utilisant le hash MD5.
P. S. La ligne de retour de l'auteur du code
return name, label; //return list for output
n'est pas correcte - seulement lalabel
variable valeur est retournée. De retour d'un couple de variables sous forme de tableau est nécessaire d'écrirereturn [name, label];
. Ou peut-être l'auteur a besoin de retourner lalist
variable et pasname
etlabel
.Je sais que c'est un vieux post /question, mais je voudrais mettre à jour ma réponse, depuis la première réponse (1ère réponse) est trompeuse. J'ai été moi-même à la recherche pour savoir comment retourner les tableaux associatifs de retour dans une cellule de la feuille de calcul, mais hélas.. "VOUS NE pouvez pas". Google feuille de calcul DOIT vouloir un tableau indexé numériquement ou un objet. Sinon, il renvoie "#ERREUR".
Ici sont les étapes pour reproduire le problème.
Solution (plutôt une solution de contournement)
1: le Transfert de vos objets à partir de votre tableau associatif dans un tableau indexé numériquement en utilisant pour chaque type de boucle.
Si vous avez utilisé un temp comme tableau indexé numériquement, vous pouvez retourner "temp" de retour à l'appel de la cellule.
Résumé: Pour
onEdit()
fins, l'utilisation du Cache de Service pour définir un tableau associatif de données.Voici partagé Gsheet démonstration de ce curieux comportement. J'ai essayé la solution suivante en par programme de la définition d'un tableau associatif, basé sur des données dans Google feuille.
Pour l'exécution de cette, vous courez le
init()
méthode dans leonOpen()
gestionnaire d'événement.L'enregistreur de message confirme que
init()
charge les données de la feuille de calcul.Maintenant, si j'essaie de faire référence à ce assocArr objet dans
onEdit()
il retourneundefined
pour toutes les valeurs de clé.- Je en déduire que pour des raisons de sécurité, Google limitée au simple déclenchement
onEdit()
de ne pas avoir de variable globale portée, de même qu'ils annulé l'utilité de laevent.user
propriété.Maintenant au lieu de cela, si je mets la paire clé-valeur dans le cache, ça marche!!! Voici le code complet qui fonctionne à l'aide du Cache de Service.
Curieusement, le
onEdit()
a lacache
variable dans son champ d'application.Ici encore, est l'partagé Gsheet démonstration de ce curieux comportement.