Comment comparer des tableaux en JavaScript ?

Article publié le jeudi 1 septembre 2022 et mis à jour le mercredi 3 avril 2024.

Comment comparer des tableaux en JavaScript ?

Vous voulez comparer des tableaux en JS ? Vous ne savez pas quelle fonction utiliser ?

Alors cet article sur la comparaison de tableaux en JavaScript est fait pour vous !

En JavaScript, il existe de nombreuses manières de comparer des tableaux. Le prototypes Array possède de plusieurs méthodes permettant la comparaison de tableaux. Les bibliothèques et fonctions permettent également d’observer les différences entre des tableaux.

Après la lecture de cet article, vous serez capable d’utiliser les différentes méthodes de comparaisons de tableaux natives à JavaScript ou celles de bibliothèques externes et bien plus !

Découvrons sans plus tarder les différents moyens de comparer des tableaux en JavaScript.

Comment comparer des tableaux en Javascript

Les solutions présentées ci-dessous couvrent plusieurs scénarios de comparaison, y compris les intersections et les différences de tableaux.

Si vous savez que vous aurez affaire à de grands tableaux, il peut être nécessaire d’affiner les solutions pour améliorer les performances.

Comment vérifier si deux tableaux sont identiques ?

Voici une façon de vérifier si deux tableaux sont identiques. Cela signifie que les deux tableaux ont les mêmes valeurs à la même position.

let tableau1 = ["a", "b", "c", "d"]
let tableau2 = ["a", "b", "c", "d"]

function isEqual(tableau1, tableau2) {
  if (tableau1.length !== tableau2.length) return false

  return tableau1.every((value, index) => value === tableau2[index])
}

let resultat = isEqual(tableau1, tableau2)

console.log(resultat)

// true

Dans cette solution, nous avons créé une fonction pour rendre notre code de comparaison facilement réutilisable.

La première chose que nous vérifions est que les deux tableaux sont de longueurs différentes.

Il s’agit d’une vérification simple et importante, car il est inutile d’itérer les tableaux si nous savons d’emblée qu’ils sont différents.

Nous utilisons ensuite la méthode prototype every pour comparer chaque élément des deux tableaux.

La fonction every effectue un test sur chaque élément du tableau sur lequel vous l’utilisez.

Dans ce cas, nous utilisons la variable index pour comparer les valeurs des deux tableaux.

Comparer des tableaux avec une bibliothèque comme LoDash

Si vous vous retrouvez à écrire beaucoup de fonctions pour travailler avec des tableaux et des fonctions, vous pouvez envisager d’utiliser une bibliothèque.

LoDash est une excellente option et possède une fonction intégrée permettant de vérifier si deux tableaux sont égaux.

Après avoir inclus la bibliothèque LoDash, vous pouvez utiliser la fonction isEqual.

let tableau1 = ["a", "b", "c", "d"]
let tableau2 = ["a", "b", "c", "d"]

let resultat = _.isEqual(tableau1, tableau2)

console.log(resultat)

// true

Utiliser JSON.stringify pour comparer des tableaux

Une façon très simple de comparer deux tableaux est de les transformer en chaînes de caractères, puis de comparer les deux chaînes.

Cette solution rend notre code très simple mais n’est pas particulièrement performante.

Nous pouvons également rencontrer des problèmes lorsque la représentation en chaîne de certaines valeurs ne correspond pas, ce qui nous donne des erreurs difficiles à déboguer.

let tableau1 = ["a", "b", "c", "d"]
let tableau2 = ["a", "b", "c", "d"]

function isEqual(tableau1, tableau2) {
  if (tableau1.length !== tableau2.length) return false

  return JSON.stringify(tableau1) === JSON.stringify(tableau2)
}

let resultat = isEqual(tableau1, tableau2)

console.log(resultat)

// true

Comment vérifier si deux tableaux ont les mêmes valeurs ?

Voici comment vérifier si deux tableaux ont les mêmes valeurs, mais pas nécessairement dans le même ordre.

let tableau1 = ["a", "b", "c", "d"]
let tableau2 = ["d", "b", "a", "c"]

function isEqual(tableau1, tableau2) {
  if (tableau1.length !== tableau2.length) return false

  let matching = tableau1.filter(val => tableau2.includes(val))

  if (matching.length == tableau1.length) return true

  return false
}

let resultat = isEqual(tableau1, tableau2)

console.log(resultat)

// true

Encore une fois, nous vérifions d’abord si les deux tableaux ont la même longueur pour gagner du temps de calcul.

Ensuite, nous effectuons une opération pour filter le tableau, et dans cette opération, nous utilisons le prototype inclus pour voir si le deuxième tableau a chaque valeur à un certain indice.

Cette opération pour filtrer renverra un tableau de correspondances, donc si la longueur est la même que celle de notre tableau d’entrée, nous savons que nos deux tableaux comparés contiennent les mêmes valeurs.

Comment trouver les valeurs correspondantes entre deux tableaux (intersection) ?

Voici comment vous pouvez obtenir l’intersection de tableaux. Une intersection est simplement une comparaison de deux tableaux qui renvoie les valeurs des deux tableaux.

let tableau1 = ["a", "b", "c", "d"]
let tableau2 = ["a", "b", "3", "4"]

let intersection = tableau1.filter(val => tableau2.includes(val))

console.log(intersection)

// ["a", "b"]

Comment trouver les valeurs qui ne sont pas dans les deux tableaux (différence) ?

Voici comment vous pouvez trouver la différence entre deux tableaux. La différence est l’inverse de l’intersection. Il s’agit de toutes les valeurs que les deux tableaux ne partagent pas.

let tableau1 = ["a", "b", "c", "d", "e"]
let tableau2 = ["a", "b", "3", "4"]

let diff1 = tableau1.filter(val => !tableau2.includes(val))
let diff2 = tableau2.filter(val => !tableau1.includes(val))

let diffFinale = diff1.concat(diff2)

console.log(diffFinale)

// ["c", "d", "e", "3", "4"]

Allez plus loin dans votre apprentissage du JavaScript

Vous savez maintenant comment comparer des tableux en JavaScript !

JavaScript est un langage simple de prise en main mais qui a des spécificités qui prennent de temps à maîtriser.

N’hésitez pas à consulter mes autres articles sur JavaScript. Ou plus particulièrement ces articles :

Comment utiliser console.log en JavaScript ?

10 des meilleurs cours JavaScript en Français

Comment formater une date en JavaScript ?

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.