Wie man zwei Arrays in JavaScript vergleicht

Rupam Yadav 12 Oktober 2023
  1. Array.prototype.equals zum Vergleichen zweier Arrays in JavaScript
  2. JSON.stringify() zum Vergleichen von Arrays in JavaScript
  3. Zwei Arrays in JavaScript mit Schleifen vergleichen
Wie man zwei Arrays in JavaScript vergleicht

Dieses Tutorial stellt drei Möglichkeiten vor, Arrays in JavaScript zu vergleichen. Es gibt mehrere Möglichkeiten, dies zu tun, aber die Leistung kann variieren.

Array.prototype.equals zum Vergleichen zweier Arrays in JavaScript

JavaScript bietet uns die Möglichkeit, neue Eigenschaften und Methoden zu den bestehenden Klassen hinzuzufügen. Wir können Array.prototype verwenden, um unsere benutzerdefinierte Methode equals in das Array-Objekt einzufügen.

Im folgenden Beispiel überprüfen wir zunächst die Länge der beiden Arrays und vergleichen dann jedes Element. Wir prüfen auch, ob a1 und a2 Array-Instanzen sind, denn wenn nicht, sind sie nicht identisch. Zuletzt verwenden wir die Methode, um das erste Array mit dem zweiten durch a1.equals(a2) zu vergleichen.

Beispiel:

var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];

Array.prototype.equals = function(getArray) {
  if (this.length != getArray.length) return false;

  for (var i = 0; i < getArray.length; i++) {
    if (this[i] instanceof Array && getArray[i] instanceof Array) {
      if (!this[i].equals(getArray[i])) return false;
    } else if (this[i] != getArray[i]) {
      return false;
    }
  }
  return true;
};

console.log('Comparing a1 and a2', a1.equals(a2));
console.log('Comparing a1 and a3', a1.equals(a3));

Ausgabe:

Comparing a1 and a2 true
Comparing a1 and a3 false

JSON.stringify() zum Vergleichen von Arrays in JavaScript

Eine andere Technik zum Vergleich zweier Arrays besteht darin, sie zunächst auf den String-Typ zu casten und dann zu vergleichen. JSON wird verwendet, um Daten von/zu einem Webserver zu übertragen, aber wir können seine Methode hier verwenden. Wir können dies tun, indem wir JSON.stringify() verwenden, das ein Array in eine Zeichenkette umwandelt. Da nun sowohl die a1 als auch die a2 Zeichenketten sind, können wir === benutzen, um zu sehen, ob sie gleich sind oder nicht.

Beispiel:

var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];

console.log('Comparing a1 and a2', JSON.stringify(a1) === JSON.stringify(a2));
console.log('Comparing a1 and a3', JSON.stringify(a1) === JSON.stringify(a3));

Ausgabe:

Comparing a1 and a2 true
Comparing a1 and a3 false

Zwei Arrays in JavaScript mit Schleifen vergleichen

Die Schleifenbildung ist die traditionellste Art des Vergleichs von Arrays in JavaScript, da die Arrays in einer Schleife durchlaufen und dann jedes einzelne Element miteinander verglichen wird, um zu prüfen, ob sie übereinstimmen.

Um es sauberer zu machen, können wir Funktionen verwenden und dann als Ergebnis boolisch zurückgeben.

Beispiel:

var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];

const getResult = function(a1, a2) {
  var i = a1.length;
  if (i != a2.length) return false;

  while (i--) {
    if (a1[i] !== a2[i]) return false;
  }
  return true;
};

console.log('Comparing a1 and a2', getResult(a1, a2));
console.log('Comparing a1 and a3', getResult(a1, a3));

Ausgabe:

Comparing a1 and a2 true
Comparing a1 and a3 false
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - JavaScript Array