


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 <p>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. </p><p>2. Tiefenvergleich</p><p>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. </p><p>Das Folgende ist ein Beispielcode, der die Tiefenvergleichsmethode verwendet, um zu bestimmen, ob zwei JSONs gleich sind: </p><pre class="brush:php;toolbar:false">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!

Nein, you sollte nichtusemultipIdsinthesamedom.1) idsmustbeuniqueperhtmlspecification und UseDuplicateSconstinconsistentBrowserBehavior.2) Useclassesforstylingmultipleements, AttributeStorgetargetingBytributes undDesschonten- und Desschütten und Desschütten und Desschuhteilen und Desschüttungen und Desschüttungen

HTML5aimstoenhancewebcapabilities,makingitmoredynamic,interactive,andaccessible.1)Itsupportsmultimediaelementslikeand,eliminatingtheneedforplugins.2)Semanticelementsimproveaccessibilityandcodereadability.3)Featureslikeenablepowerful,responsivewebappl

Html5aimstoenhancewebdevelopment undseRexperiencethroughsemanticsstruktur, Multimediaintegration und PerformanceimProvements.1) semanticelements wie und impovereadability und Accessibility.2) und TagsallownessmultimediaMeddingdingdingDingdingdingdingwithaugleDeUtPlugin.

Html5isnotinherentiNecure, ButitsFeaturesCanleadtoseCurityRiksifmisusesedOrimProperlyImplemented.1) UsethesandboxattributeIniframestocontrolembeddedContentandPreventVulerabilitsLiKeClickjacking.2) meiden

Html5AimedToenHancewebdevelopmentByIntrocingSemanticelemente, Nativemultimediasupport, verbesserte Formelemente und OfflineKapabilitäten, kontrastübergreifend mit THTHTHTHTHIMITIMITATIONSOFHTML4ANDXHTML.1) ITINTREIDEMANTICTAGAGAGAGAGAGAGAGAGAGEN, AUSGRISSIERUNGEN

Die Verwendung von ID -Selektoren ist in CSS nicht von Natur aus schlecht, sollte aber mit Vorsicht verwendet werden. 1) ID -Selektor eignet sich für eindeutige Elemente oder JavaScript -Hooks. 2) Für allgemeine Stile sollten Klassenauswahlern verwendet werden, da sie flexibler und wartbarer sind. Durch die Ausbindung der Verwendung von ID und Klasse kann eine robustere und effizientere CSS -Architektur implementiert werden.

Html5'Sgoalsin2024FocusonRefinement undoptimization, NotnewFeatures

Html5AimedToimProvewebdevelopmentInfourKeyAreaas: 1) Multimediasupport, 2) Semanticsstruktur, 3) FormCapabilities und 4) Offline und StorageOptions.1) html5Introducuedand und vereinfachen mediaMbeddinganddingandenhancingSexperience.2)


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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Dreamweaver CS6
Visuelle Webentwicklungstools
