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