Comment comparer des tableaux en JavaScript ?

Article publié le et mis à jour le .

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 ?