Heim >Web-Frontend >js-Tutorial >Warum funktioniert „==' nicht zum Vergleichen von Arrays in JavaScript?

Warum funktioniert „==' nicht zum Vergleichen von Arrays in JavaScript?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-10 16:39:03466Durchsuche

Why Doesn't `==` Work for Comparing Arrays in JavaScript?

Warum die Gleichheitsprüfung für Arrays fehlschlägt

In JavaScript gibt die Gleichheitsprüfung (==) zwischen Arrays „Falsch“ zurück, selbst wenn die Arrays so aussehen enthalten identische Elemente. Dieses Verhalten widerspricht der intuitiven Erwartung der Wertegleichheit.

Die Natur von Arrays verstehen

JavaScript-Arrays sind keine primitiven Datentypen, sondern Objekte. Beim Vergleich zweier Arrays mit == prüft der Operator, ob beide Arrays genau dieselbe Instanz sind, nicht, ob ihre Inhalte gleich sind.

So vergleichen Sie Array-Inhalte

Um festzustellen, ob zwei Arrays denselben Inhalt haben, müssen Sie jedes entsprechende Element explizit vergleichen. Hier ist eine einfache Funktion, um dies zu tun:

function arraysEqual(arr1, arr2) {
  if (arr1.length != arr2.length) {
    return false;
  }
  for (let i = 0; i < arr1.length; i++) {
    if (arr1[i] != arr2[i]) {
      return false;
    }
  }
  return true;
}

JSON.stringify() Irrtum

Einige schlagen vor, JSON.stringify() zu verwenden, um beide Arrays in JSON-Strings zu konvertieren und vergleichen Sie dann die Zeichenfolgen. Obwohl dies in bestimmten Szenarien funktionieren kann, ist es keine zuverlässige Lösung. JSON.stringify() behält die Reihenfolge der Objekteigenschaften im resultierenden String bei, die je nach Implementierungsdetails variieren kann. Diese Inkonsistenz kann zu falsch negativen Ergebnissen bei Gleichheitsprüfungen führen.

Best Practice

Für einen zuverlässigen Vergleich von Array-Inhalten wird empfohlen, eine benutzerdefinierte Funktion zu schreiben, die alle Elemente durchläuft und prüft explizit auf Gleichheit. Dieser Ansatz gewährleistet Genauigkeit und Robustheit beim Vergleich von Arrays.

Das obige ist der detaillierte Inhalt vonWarum funktioniert „==' nicht zum Vergleichen von Arrays in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn