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 ?
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la premiĂšre promotion de l'Ăcole 42, j'ai conçu et dĂ©veloppĂ© des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratĂ©gies les plus efficaces pour maĂźtriser l'art de coder et progresser rapidement.