20 Techniques pour Manipuler des Tableaux en JavaScript
Publié le
Les tableaux sont omniprésents en JavaScript, et leur manipulation est une compétence essentielle pour tout développeur. Cet article vous propose 20 techniques pratiques, de la récupération d’éléments spécifiques à des transformations avancées pour exploiter efficacement vos données.
🔍 Accéder aux Éléments
1. Récupérer le premier élément
Pour accéder à un élément dans un tableau, on utilise les crochets
[] et on place l'index de l'élément à récupérer à
l'intérieur. Le premier élément d'un tableau se trouve toujours à l'index
0. On utilisera donc
array[0] pour accéder au premier élément d'un tableau.
const fruits = ['pomme', 'banane', 'orange'];
console.log(fruits[0]); // 'pomme'
2. Récupérer le dernier élément
Pour obtenir la taille d'un tableau, on utilise la propriété
array.length. Comme l'indexation commence à 0, l’index
du dernier élément sera toujours égal à la taille du tableau moins 1. On utilisera donc
array[array.length - 1] pour accéder au dernier
élément d'un tableau.
const fruits = ['pomme', 'banane', 'orange'];
console.log(fruits[fruits.length - 1]); // 'orange'
3. Obtenir une partie du tableau
La méthode slice() permet d'extraire une portion d'un
tableau sans modifier le tableau d'origine. On lui fournit deux arguments : l'index de
départ (inclus) et l'index de fin (exclus). Si l'index de fin est omis, la méthode
extrait jusqu'à la fin du tableau. Par exemple,
array.slice(1, 3) extrait les éléments à partir de
l'index 1 jusqu'à l'index 2, mais exclut l'élément à l'index 3.
const fruits = ['pomme', 'banane', 'orange', 'kiwi'];
const quelquesFruits = fruits.slice(1, 3);
console.log(quelquesFruits); // ['banane', 'orange']
🛠️ Transformation des Tableaux
4. Doubler les valeurs numériques
La méthode map() permet de transformer chaque élément
d'un tableau en appliquant une fonction de transformation. On lui fournit une fonction
de callback qui définit comment chaque élément doit être modifié. La méthode retourne un
nouveau tableau sans modifier le tableau original.
const nombres = [1, 2, 3];
const doubles = nombres.map(x => x * 2);
console.log(doubles); // [2, 4, 6]
5. Filtrer les éléments
La méthode filter() permet de sélectionner uniquement
certains éléments d'un tableau selon un critère précis. On lui fournit une fonction de
callback qui retourne true ou
false pour chaque élément. Seuls les éléments pour
lesquels la fonction retourne true sont conservés dans le nouveau tableau.
const nombres = [1, 2, 3, 4, 5];
const pairs = nombres.filter(x => x % 2 === 0);
console.log(pairs); // [2, 4]
📋 Organisation des Données
6. Trier un tableau
La méthode sort() permet de trier les éléments d'un
tableau. Par défaut, elle effectue un tri alphabétique pour les chaînes de caractères.
On peut lui fournir une fonction de comparaison personnalisée pour définir un ordre de
tri spécifique.
// Tri alphabétique
const fruits = ['orange', 'pomme', 'banane'];
console.log(fruits.sort()); // ['banane', 'orange', 'pomme']
7. Supprimer les doublons
L'objet Set permet de créer une collection d'éléments
uniques. En utilisant l'opérateur de décomposition
... avec new Set(),
on peut facilement convertir un tableau contenant des doublons en un nouveau tableau
sans éléments répétés.
const nombres = [1, 2, 2, 3];
const uniques = [...new Set(nombres)];
console.log(uniques); // [1, 2, 3]
🔄 Opérations de Réduction et d'Accumulation
8. Calculer la somme
La méthode reduce() permet de réduire un tableau à une
seule valeur en appliquant une fonction de réduction. On lui fournit une fonction de
callback qui accumule les valeurs, avec un valeur initiale (ici 0) comme point de
départ.
const nombres = [1, 2, 3];
const somme = nombres.reduce((total, x) => total + x, 0);
console.log(somme); // 6
9. Compter les occurrences
La méthode reduce() peut également être utilisée pour
créer un objet comptant le nombre d'occurrences de chaque élément. La fonction de
callback incrémente le compteur pour chaque élément unique dans un objet accumulateur.
const fruits = ['pomme', 'orange', 'pomme'];
const occurrences = fruits.reduce((acc, fruit) => {
acc[fruit] = (acc[fruit] || 0) + 1;
return acc;
}, {});
console.log(occurrences); // { pomme: 2, orange: 1 }
📏 Analyse et Tests sur les Éléments
10. Trouver l’élément le plus long
En utilisant reduce() avec une comparaison de
longueur, on peut identifier l'élément le plus long d'un tableau. La méthode compare
successivement les éléments et retourne celui ayant la plus grande longueur.
const mots = ['chat', 'éléphant', 'chien'];
const plusLong = mots.reduce((a, b) => (a.length > b.length ? a : b));
console.log(plusLong); // 'éléphant'
11. Vérifier si tous les éléments respectent une condition
La méthode every() teste si tous les éléments d'un
tableau satisfont une condition donnée. Elle retourne
true si la fonction de callback renvoie
true pour tous les éléments, et
false dès qu'un élément ne respecte pas la condition.
const nombres = [1, 2, 3];
console.log(nombres.every(x => x > 0)); // true
12. Trouver des doublons
La méthode utilisée ici identifie les éléments qui apparaissent plus d'une fois dans un
tableau. Le code filter() compare l'index de la
première occurrence de chaque élément avec son index actuel. Si l'index actuel est
différent de l'index de première occurrence, cela signifie que l'élément est un doublon
const nombres = [1, 2, 3, 2, 4, 2, 4];
const doublons = nombres.filter((x, index, arr) => arr.indexOf(x) !== index);
console.log(doublons); // [2, 2, 4]
13. Inverser un tableau
La méthode reverse() permet de modifier l'ordre des
éléments d'un tableau en inversant leur position, en commençant par le dernier élément
qui devient le premier.
const fruits = ['pomme', 'banane', 'orange'];
console.log(fruits.reverse()); // ['orange', 'banane', 'pomme']
💡 Fonctions Utilitaires
14. Vérifier la présence d’un élément
La méthode includes() vérifie simplement si un élément
est présent dans un tableau, retournant true ou
false selon le résultat.
const fruits = ['pomme', 'banane', 'orange'];
console.log(fruits.includes('banane')); // true
15. Fusionner deux tableaux
La méthode concat() crée un nouveau tableau en
combinant les éléments de plusieurs tableaux sans modifier les tableaux originaux.
const fruits = ['pomme', 'banane'];
const autresFruits = ['orange', 'kiwi'];
console.log(fruits.concat(autresFruits)); // ['pomme', 'banane', 'orange', 'kiwi']
📂 Conversion et Assemblage de Tableaux
16. Transformer une chaîne de caractères en tableau
La méthode split() permet de découper une chaîne de
caractères en un tableau, en utilisant un séparateur spécifié comme critère de
découpage.
const phrase = 'Bonjour à tous';
const mots = phrase.split(' ');
console.log(mots); // ['Bonjour', 'à', 'tous']
17. Fusionner un tableau en une chaîne
La méthode join() fait l'opération inverse de
split(), en transformant un tableau en une chaîne de
caractères unique, avec un séparateur optionnel entre les éléments.
const mots = ['Bonjour', 'à', 'tous'];
console.log(mots.join(' ')); // 'Bonjour à tous'
📜 Techniques Avancées
18. Créer un tableau
La méthode from() permet de créer un nouveau tableau à
partir d'un objet itérable, comme une chaîne de caractères ou un autre type de
collection.
const texte = '12345';
const tableau = Array.from(texte);
console.log(tableau); // ['1', '2', '3', '4', '5']
19. Remplir un tableau
La méthode fill() remplit tous les éléments d'un
tableau avec une valeur donnée, en utilisant un index de début et de fin optionnel.
const tableau = Array(5).fill('JS');
console.log(tableau); // ['JS', 'JS', 'JS', 'JS', 'JS']
20. Trouver l’index d’un élément avec
La méthode indexOf() recherche la première occurrence
d'un élément dans un tableau et retourne son index, ou -1 si l'élément n'est pas trouvé.
const fruits = ['pomme', 'banane', 'orange'];
console.log(fruits.indexOf('banane')); // 1
🎁 Bonus
21. Modifier les données d'un tableau
La méthode splice() permet de modifier un tableau en
ajoutant, supprimant ou remplaçant des éléments à une position donnée.
const couleurs = ['rouge', 'vert', 'bleu'];
// Supprimer 1 élément à partir de l'index 1 et ajouter 'jaune'
couleurs.splice(1, 1, 'jaune');
console.log(couleurs); // ['rouge', 'jaune', 'bleu']
On peut également ajouter des éléments sans supprimer :
const autresCouleurs = ['rouge', 'jaune', 'bleu'];
// Ajouter deux éléments sans supprimer
autresCouleurs.splice(2, 0, 'orange', 'violet');
console.log(autresCouleurs); // ['rouge', 'jaune', 'orange', 'violet', 'bleu']