Fonctions en ligne
Parfois, vous voulez qu'une expression "formule" ou "afficher si" fasse des choses vraiment complexes. Peut-être voulez-vous faire une expression de type "si/alors/sinon" pour décider si une section de questions se résout au niveau 1 ou au niveau 2. Cela pourrait être beaucoup plus compliqué que cela (voir le score de probabilité de réadmission pour un exemple).
Vous constaterez qu'ajouter un simple if (x) { return y; }
ne fonctionnera pas. Par exemple, ce qui suit ne fonctionnera pas :
(ScriptUtil.sum(mySection) > 5) return 2; else return 1;
Le truc est que vous devez définir et exécuter une fonction en ligne, comme ceci :
(function() { if (ScriptUtil.sum(mySection) > 5) return 2; else return 1; })()
Copier la règle
Détails techniques
Pour décomposer cela, cette partie définit la fonction : (function() { if (ScriptUtil.sum(mySection) > 5) return 2; else return 1;})
et les ()
à la fin exécutent simplement la fonction nouvellement définie.
Manipulations de date
Vous pouvez créer une nouvelle date en Javascript en utilisant l'appel new Date()
, qui renvoie la date/heure actuelle. Vous pouvez utiliser new Date(2020,2,10)
pour créer une date pour le 10 mars 2020 (oui, mars ; le mois est déroutant car il est indexé à partir de 0, donc janvier est le mois 0).
Vous pouvez appeler new Date().getMonth()
pour obtenir le mois actuel (indexé à partir de 0 à nouveau, donc mars est le mois 2).
Pour comparer des dates, soustrayez-les simplement pour obtenir le nombre de millisecondes entre elles, puis divisez cette différence par 1000*60*60*24
pour obtenir la différence en jours.
Consultez "Référence des dates en Javascript" pour plus d'informations.
Javascript avancé
Tant que votre script s'évalue en une seule expression, vous pouvez faire à peu près tout ce que vous pouvez faire avec Javascript. Certaines fonctionnalités de script avancées utilisent une fonction en ligne comme décrit ci-dessus pour avoir un algorithme multi-lignes compliqué enveloppé dans une seule expression.
Vous pouvez en apprendre davantage sur Javascript en utilisant Google (par exemple "comment comparer des dates en Javascript ?") ou en lisant un bon livre de référence (par exemple "Javascript : Les bonnes parties").