87 votes

Comment vérifier un tableau identique de la manière la plus efficace ?

Je veux vérifier si les deux tableaux sont identiques (pas au niveau du contenu, mais dans l'ordre exact).

Par exemple :

 array1 = [1,2,3,4,5]
 array2 = [1,2,3,4,5]
 array3 = [3,5,1,2,4]

Les tableaux 1 et 2 sont identiques mais le tableau 3 ne l'est pas.

Existe-t-il un bon moyen de faire cela en JavaScript ?

152voto

palswim Points 4353

Alors, qu'y a-t-il de mal à vérifier chaque élément de manière itérative ?

function arraysEqual(arr1, arr2) {
    if(arr1.length !== arr2.length)
        return false;
    for(var i = arr1.length; i--;) {
        if(arr1[i] !== arr2[i])
            return false;
    }

    return true;
}

48voto

Adam Points 14766

Vous pourriez comparer les représentations de String ainsi :

array1.toString() == array2.toString()
array1.toString() !== array3.toString()

mais cela rendrait aussi

array4 = ['1',2,3,4,5]

égale à array1 si cela vous importe

4voto

Larry K Points 16266
array1_matches_array2 = array1.join() === array2.join(); // true
array1_matches_array3 = array1.join() === array3.join(); // false

mise à jour : l'argument par défaut pour la jointure est ",".

-7voto

Jacob Nelson Points 1327

Trier les tableaux et les comparer.

array1.sort() == array2.sort();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X