So vergleichen Sie Arrays in JavaScript – Geheimnis gelüftet!

Um in JavaScript zwei Arrays zu vergleichen, müssen wir überprüfen, ob die Länge beider Arrays gleich ist, die darin enthaltenen Objekte vom gleichen Typ sind und jedes Element in einem Array gleich dem Gegenstück in einem anderen Array ist.

In diesem Artikel beleuchten wir „ So vergleichen Sie Arrays in JavaScript “.

Arrays müssen möglicherweise verglichen werden, um die Äquivalenz zu bestimmen. Arrays in JavaScript unterscheiden sich von Arrays in C oder C++.



Arrays können in JavaScript eine Zahl oder einen Textindex haben. Die Verwendung des nummerierten Indexes, das Durchlaufen und Vergleichen von Arrays ist einfach, aber bei Textindizes ist es kompliziert.

Sehen wir uns einige der möglichen Wege an Arrays vergleichen in verschiedenen Szenarien:

  • Die Arrays haben einen nummerierten Index und sind gleich lang.
  • Die Arrays haben einen nummerierten Index und sind nicht gleich lang.
  • Die Arrays haben einen Textindex und sind gleich lang.
  • Die Arrays haben einen Textindex und sind nicht gleich lang.

Die Arrays haben einen Zahlenindex und sind gleich lang

Zum Beispiel haben wir zwei Arrays wie unten und wir möchten diese Arrays vergleichen.

var Array1 = {"1", "2", "3"}

var Array2 = {"1", "2", "4"}

Die obigen Arrays haben eine kleine Anzahl von Elementen, nämlich drei (3). Die Bestimmung der Äquivalenz für das kleine Array ist einfacher.

Aber für längere Arrays müssen wir eine Methode finden, um sie zu finden. JavaScript kommt mit einer eingebauten Länge Methode, die mit Arrays und Objekten verwendet werden kann, um deren Länge zu ermitteln.

Diese Länge kann vorzugsweise mit einem konditionalen Konstrukt verglichen werden wenn Aussage. Das wäre etwa so:

if(Array1.length == Array2.length){

    // do something;

}

Der Vergleich der Länge ist notwendig, da wir es mit Arrays gleicher Größe zu tun haben. Wenn die Länge der Arrays gleich ist, können Kreuzelemente von Arrays leicht mit einer Schleife, vorzugsweise einer for, überprüft werden Schleife.

Das wäre etwa so:

for....

{

    document.write("Array 1 element " + Array1[i] + "is equal to
"+ "Array 2 element " + Array2[i]);

}

Dadurch werden nur einige Textanweisungen ausgegeben, die die Kreuzelemente vergleichen. Dies könnte geändert werden, um einen Text wie „Arrays are equal“ auszugeben, um es einfach zu machen.

Es könnte auch eine geben anders Teil, der den Fall behandeln kann, dass Arrays nicht gleich sind.

Die Arrays haben einen nummerierten Index und sind nicht gleich lang

Wie wir im Else-Teil des vorherigen Szenarios erwähnt haben, sind Arrays möglicherweise nicht gleich lang. In einem solchen Fall kann Array 1 gleich Array 2 sein oder aber Array 2 nicht.

Zum Beispiel hat Array 1 drei Elemente, wie wir zuvor verwendet haben, aber Array 2 hat 4 Elemente. Array 2 enthält alle Elemente von Array 1, aber das gilt nicht für Array 1.

Für einen solchen Fall können wir jedes Element eines Arrays mit jedem Element des anderen Arrays vergleichen und umgekehrt.

Aber in diesem Fall kann nur ein Array dem anderen gleich sein oder nicht, aber beide können nicht gleich sein, da sie unterschiedliche Längen haben. Um die Arrays auf diese Weise zu vergleichen, können wir eine verschachtelte for-Schleife verwenden, die etwa so aussehen könnte:

for...

    for...

{

    {

    	if(Array[i] == Array[j])

    	{
   		 //do something

   		         }

    }

}

Wir müssen ein if verwenden -Anweisung innerhalb der verschachtelten Schleifen, da wir es mit Arrays unterschiedlicher Größe zu tun haben.

Die Arrays haben einen Textindex und sind gleich lang

Textindizierte Arrays sind keine gute Praxis. Es verkompliziert die Aufgabe des gleichmäßigen Vergleichens von Arrays der Länge sowie ungleicher Länge weiter. Dies gilt auch für „Die Arrays haben einen Textindex und sind nicht gleich“.

Die gleiche Länge, jeder Wert ist gleich

Ein Ansatz zum Vergleichen von var1 und var2 besteht darin, zu prüfen, ob jeder Wert von var1 genau gleich dem entsprechenden Wert von var2 ist.

Dies funktioniert gut, wenn alle Elemente der Arrays Primitive im Gegensatz zu Objekten sind. Am Ende der Operation gibt es einen booleschen Wert zurück. Hier ist ein Beispiel:

const var1 = [1, 2, 3];

const var2 = [4, 5, 6];

const var3 = [1, 2, 3];


function arrayEquals(var1, var2) {

  return Array.isArray(var1) && Array.isArray(var2) &&
var1.length === var2.length && var1.every((val, index) => val
=== var2[index]);

}


arrayEquals(var1, var2);

arrayEquals(var1, var3);

Die Ausgabe sollte wie folgt aussehen:
Falsch Richtig

Verwenden der Methode JSON.stringify()

JavaScript stellt eine Funktion bereit JSON .stringify() um ein Objekt oder Array in eine JSON-Zeichenfolge zu konvertieren. Durch die Konvertierung in JSON-Strings können wir direkt prüfen, ob die Strings gleich sind oder nicht.

Allerdings ist die JSON .stringify() -Methode konvertiert ein Array in einen JSON-String. Werfen Sie einen Blick auf das untenstehende Programm, um das Konzept gut zu verstehen.

function compareArrays(arr1, arr2){

    // compare arrays

    const result = JSON.stringify(arr1) == JSON.stringify(arr2)

    
// if result is true

    if(result){

   	 console.log('The arrays have the same elements.');

    }

    else{

   	 console.log('The arrays have different elements.');

    }

}

const array1 = [1, 3, 5, 8];

const array2 = [1, 3, 5, 8];

compareArrays(array1, array2);

Das obige Programm vergleicht die angegebenen Arrays und erzeugt eine Ausgabe. Die Arrays haben die gleichen Elemente b Weil wir den gleichen Wert in beide Arrays setzen.

In diesem Blogbeitrag haben wir haben gelernt, wie man Arrays in JavaScript vergleicht, und sich mit einigen der verfügbaren Methoden befasst, einschließlich einfachen Beispielcodes.