In a script, it is sometimes necessary to manipulate one or more tables.
There are different methods JavaScript useful to exploit an array efficiently.
List of JavaScript functions
forEach()
Iterate on a list in order to use or apply a treatment on each of its data.
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
categoriesDemandeAchat.forEach(function(categorie) {
execution.setVariable("categorie_" + categorie, categorie);
});
// Résultat : De nouvelles variables ayant pour ID "categorie_Informatique" (valeur : Informatique), "categorie_Bureautique" (valeur : Bureautique) et "categorie_Autre" (valeur : Autre) sont créées.
map()
Iteries on a list, transforms each element with the given function/processing and returns the new transformed list.
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
const categoriesDemandeAchatApresModif = categoriesDemandeAchat.map(
function(categorieParcourue){
return "Catégorie : " + categorieParcourue;
});
// Résultat : Une concaténation de "Catégorie : " et du nom de la catégorie est faite sur chaque élément.
// ['Catégorie : Informatique', 'Catégorie : Bureautique', 'Catégorie : Autre']
filter()
Returns a new array that contains only the elements that correspond to the condition passed in parameter.
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
const resultats = categoriesDemandeAchat.filter(function(categorie){
return categorie.endsWith('tique');
});
// Résultat : Un filtre a été réalisé sur le tableau "resultats". Seules les catégories qui finissent pas "tique" sont gardées.
// ['Informatique', 'Bureautique']
push()
Adds element(s) to the end of the table.
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
categoriesDemandeAchat.push('Consommable');
// Résultat : "Consommable" est ajouté au tableau.
// ['Informatique', 'Bureautique', 'Autre', 'Consommable']
shift()
Removes and stores the first element of the array.
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
var premiereCategorie = categoriesDemandeAchat.shift();
// Résultat : Le premier élément du tableau "categoriesDemandeAchat" est retiré du tableau puis stocké dans la variable JS "premiereCategorie".
// ['Bureautique', 'Autre']
// premiereCategorie = "Informatique"
pop()
Removes and stores the last item in the table.
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
var derniereCategorie = categoriesDemandeAchat.pop();
// Résultat : Le dernierélément du tableau "categoriesDemandeAchat" est retiré du tableau puis stocké dans la variable JS "derniereCategorie".
// ['Informatique', 'Bureautique']
// premiereCategorie = "Informatique"
join()
Concatenates all the elements of the array with, as separator, the element passed as parameter (comma if no parameter).
For example:
var categoriesDemandeAchat = ['Informatique', 'Bureautique', 'Autre'];
var listeDesCategorie = categoriesDemandeAchat.join('##');
// Résultat : Une chaîne de caractère est créée avec tout les éléments du tableau "categoriesDemandeAchat" en mettant comme séparateur le paramètre renseigné ("##").
// Informatique##Bureautique##Autre
More information on the methods
External documentation on methods :
Use case under Iterop
Example of a script that can be used under Iterop :
// Dans les variables du processus on a :
var tache_tableauDesPersonnes = '[{"nom":"Dupont", "prenom" : "Julien", "age":4},{"nom":"Dupond", "prenom" : "Marie", "age":26},{"nom":"Dupont", "prenom" : "Marc", "age":32}]';
//_______________________________________________________
// Le script
var js_Tableau = JSON.parse(tache_tableauDesPersonnes);
var js_nombreDePersonne = jsTableau.length;
//On remplace les ages par les années de naissance
var js_AnneeEnCours = new Date().getFullYear();
js_Tableau.forEach(function(personne) {
personne.birthdate=js_AnneeEnCours-personne.age;
delete personne.age;
});
// On ajoute une personne
var js_NouvellePersonne = {};
js_NouvellePersonne.nom = "Dupont";
js_NouvellePersonne.prenom = "Michèle";
js_NouvellePersonne.birthdate = 2012;
js_Tableau.push(js_NouvellePersonne);
// On récupère uniquement la première personne
var js_premierePersonne = js_Tableau.shift();
// On ne garde que ceux qui sont nés dans les années 2000
var js_TableauDesPersonnesNeesDansLesAnnees2000 = js_Tableau.filter(function(personne){
return personne.birthdate > 1999;
});
// On ne garde que les ages
var js_TableauDesannees = js_Tableau.map(function(personne){
return personne.birthdate;
});
var js_StringDesAnneesDeNaissance = js_TableauDesannees.join("##");
// En oubliant pas de mettrre cette variable en type liste
execution.setVariable("script_datesDeNaissance",js_StringDesAnneesDeNaissance);
execution.setVariable("script_nouveauTableauCompletAvecDates", JSON.stringify(js_Tableau));
// La variable script_nouveauTableauCompletAvecDates est une variable composée dont la structure utilise birthdate plutot que age