1. Home
  2. Iterop Design
  3. Use a script
  4. Manipulating arrays in JavaScript

Manipulating arrays in JavaScript

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

Good to know: The above plus script allows you to create a list (if the output variable is declared as a list)

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
Updated on 13 November 2020

Was this article helpful?

Related Articles

Need Support?
Can't find the answer you're looking for?
Contact Support