


So ermitteln Sie, ob zwei JSONs in Javascript gleich sind
Bei der täglichen Programmierarbeit ist die Beurteilung, ob zwei JSONs gleich sind, ein sehr häufiges Problem. In JavaScript können wir feststellen, ob zwei JSONs gleich sind, indem wir Eigenschaftswerte in den JSON-Objekten vergleichen. In diesem Artikel werden verschiedene Möglichkeiten erläutert, um festzustellen, ob zwei JSONs in JavaScript gleich sind, einschließlich tiefer und flacher Vergleiche.
1. Flacher Vergleich
Der flache Vergleich ist eine relativ einfache Methode, die normalerweise verwendet wird, um festzustellen, ob die Attribute zweier JSON-Objekte gleich sind. Flache Vergleiche vergleichen nur die Eigenschaften der obersten Ebene eines JSON-Objekts und vergleichen nicht rekursiv die verschachtelten Eigenschaften der Objekte.
Das Folgende ist ein Beispielcode, der eine flache Vergleichsmethode verwendet, um zu bestimmen, ob zwei JSONs gleich sind:
function shallowEqual(obj1, obj2) { const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (let i = 0; i < keys1.length; i++) { const key = keys1[i]; if (obj1[key] !== obj2[key]) { return false; } } return true; } const obj1 = { a: 1, b: "hello", c: true }; const obj2 = { a: 1, b: "world", c: true }; console.log(shallowEqual(obj1, obj2)); // false console.log(shallowEqual(obj1, obj1)); // true
Im obigen Beispielcode definieren wir eine Funktion namens „shallowEqual“, die zwei Parameter obj1 und obj2 akzeptiert, die zum Vergleichen verwendet werden, ob Die beiden JSONs sind gleich. Die Funktion verwendet zunächst die Methode Object.keys(), um die Attributnamenlisten von obj1 und obj2 abzurufen, und vergleicht dann die beiden Listen auf Gleichheit. Wenn nicht gleich, gibt die Funktion „false“ zurück, andernfalls iteriert sie durch jedes Attribut von obj1 und vergleicht, ob sein Wert gleich dem Wert des entsprechenden Attributs in obj2 ist. Wenn einer der Werte nicht gleich ist, gibt die Funktion „false“ zurück, andernfalls gibt sie „true“ zurück.
2. Tiefenvergleich
Tiefenvergleich ist eine komplexere Methode, mit der verglichen wird, ob alle Attribute zweier JSON-Objekte gleich sind, einschließlich der verschachtelten Attribute der Objekte. Bei Verwendung der Tiefenvergleichsmethode müssen wir alle Eigenschaften des JSON-Objekts rekursiv durchlaufen und vergleichen, ob ihre Werte gleich sind.
Das Folgende ist ein Beispielcode, der die Tiefenvergleichsmethode verwendet, um zu bestimmen, ob zwei JSONs gleich sind:
function deepEqual(obj1, obj2) { if (obj1 === obj2) { return true; } if (typeof obj1 !== typeof obj2) { return false; } if (Array.isArray(obj1) !== Array.isArray(obj2)) { return false; } if (typeof obj1 === "object" && obj1 !== null && obj2 !== null) { const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (const key of keys1) { if (!obj2.hasOwnProperty(key)) { return false; } if (!deepEqual(obj1[key], obj2[key])) { return false; } } return true; } return obj1 === obj2; } const obj1 = { a: 1, b: ["foo", "bar"], c: { d: true } }; const obj2 = { a: 1, b: ["foo", "bar"], c: { d: true } }; const obj3 = { a: 1, b: ["foo", "bar"], c: { d: false } }; console.log(deepEqual(obj1, obj2)); // true console.log(deepEqual(obj1, obj3)); // false
Im obigen Beispielcode definieren wir eine Funktion namens deepEqual, die zwei Parameter obj1 und obj2 akzeptiert. Wird zum Vergleichen verwendet, ob zwei JSONs sind gleich. Diese Funktion ermittelt zunächst, ob obj1 und obj2 genau gleich sind, und gibt in diesem Fall „true“ zurück. Als nächstes prüft es, ob obj1 und obj2 vom gleichen Typ sind und gibt andernfalls false zurück. Anschließend prüft es, ob sowohl obj1 als auch obj2 vom Array- oder Objekttyp sind und gibt „false“ zurück, wenn eines vom Array-Typ und das andere vom Objekttyp ist. Wenn beide JSON-Objekte vom Objekttyp sind, verwenden Sie die Methode Object.keys(), um eine Liste ihrer Eigenschaftsnamen abzurufen und die beiden Listen auf Gleichheit zu vergleichen. Anschließend wird die Funktion deepEqual für jedes Attribut von obj1 rekursiv aufgerufen, um zu vergleichen, ob die Werte der entsprechenden Attribute in obj1 und obj2 gleich sind. Wenn die Werte einer der Eigenschaften nicht gleich sind, gibt die Funktion „false“ zurück, andernfalls gibt sie „true“ zurück.
Fazit
Die Bestimmung, ob zwei JSONs in JavaScript gleich sind, ist eine sehr nützliche Operation. Unabhängig davon, ob oberflächliche Vergleiche oder tiefe Vergleiche verwendet werden, gibt es viele Möglichkeiten, dieses Problem zu lösen. Wenn Sie nur die Eigenschaften der obersten Ebene eines JSON-Objekts vergleichen müssen, verwenden Sie flache Vergleichsmethoden. Wenn Sie alle Eigenschaften eines JSON-Objekts vergleichen müssen, einschließlich verschachtelter Eigenschaften, verwenden Sie die Methode des Tiefenvergleichs, um das Problem zu lösen. Unabhängig davon, für welche Methode Sie sich entscheiden, denken Sie daran, Ihre Lösung zu testen, um sicherzustellen, dass sie zwei JSON-Objekte korrekt auf Gleichheit vergleicht.
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob zwei JSONs in Javascript gleich sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Lazy Ladeverzögerung des Ladens von Inhalten bis zur Bedarf, Verbesserung der Webleistung und Benutzererfahrung durch Reduzierung der anfänglichen Ladezeiten und des Serverlasts.

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.
