Cours Apps Script : Set et Map

Avec Apps Script, vous utiliserez dans la majorité des cas des tableaux. Il existe néanmoins d'autres objets qui pourront vous aider dans certains cas pour gérer des ensembles de valeurs.


Set

Un objet Set permet de stocker un ensemble de valeurs uniques et peut être créé comme ceci :

const valeursUniques = new Set();

Pour ajouter des valeurs dès le début, entrez-les dans un tableau :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);

console.log(...valeursUniques); // Affiche : 1 5 2 3 4

Vous pouvez voir que les doublons ont été directement supprimés.

La méthode add permet d'ajouter des valeurs supplémentaires :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);

valeursUniques.add(6);
valeursUniques.add(3);

console.log(...valeursUniques); // Affiche : 1 5 2 3 4 6

La méthode has permet de vérifier si une valeur est présente :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);

if (valeursUniques.has(4)) {
  console.log('OUI'); // Affiché
}

La méthode delete permet de supprimer une valeur :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);

valeursUniques.delete(3);

console.log(...valeursUniques); // Affiche : 1 5 2 4

La propriété size permet de connaître le nombre de valeurs :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);

console.log(valeursUniques.size); // Affiche : 5

La méthode forEach permet de parcourir chaque valeur :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);

valeursUniques.forEach(valeur => console.log(valeur));

Si nécessaire, vous pouvez convertir l'objet Set en un tableau :

const valeursUniques = new Set([1, 5, 2, 3, 1, 4, 2, 1, 3]);
const tableauValeurs = [...valeursUniques];

console.log(tableauValeurs); // Affiche : [ 1, 5, 2, 3, 4 ]

Donc pour retirer les doublons d'un tableau, vous pouvez utiliser ce raccourci :

let tableau = [1, 5, 2, 3, 1, 4, 2, 1, 3];
tableau = [...new Set(tableau)];

console.log(tableau); // Affiche : [ 1, 5, 2, 3, 4 ]

Map

Un objet Map permet d'associer des valeurs à des clés et peut être créé comme ceci :

const donnees = new Map();

La méthode set permet d'ajouter une paire (clé, valeur) :

const donnees = new Map();
donnees.set('nom', 'Exemple');
donnees.set('prenom', 'Test');

La méthode get permet de récupérer une valeur en fonction de sa clé :

const donnees = new Map();
donnees.set('nom', 'Exemple');
donnees.set('prenom', 'Test');

console.log(donnees.get('nom')); // Affiche : Exemple

La méthode delete permet de supprimer une valeur en fonction de sa clé :

const donnees = new Map();
donnees.set('nom', 'Exemple');
donnees.set('prenom', 'Test');
donnees.delete('prenom');

La propriété size permet de connaître le nombre de paires :

const donnees = new Map();
donnees.set('nom', 'Exemple');
donnees.set('prenom', 'Test');

console.log(donnees.size); // Affiche : 2

La méthode forEach permet de parcourir chaque paire :

const donnees = new Map();
donnees.set('nom', 'Exemple');
donnees.set('prenom', 'Test');

donnees.forEach((valeur, cle) => console.log(cle, valeur));

Si nécessaire, vous pouvez convertir l'objet Map en un tableau qui va contenir un tableau pour chaque paire :

const donnees = new Map();
donnees.set('nom', 'Exemple');
donnees.set('prenom', 'Test');

const tableau = [...donnees];

console.log(tableau); // Affiche : [ [ 'nom', 'Exemple' ], [ 'prenom', 'Test' ] ]