Objekte in JavaScript vergleichen
-
Vergleichen Objekte mit der Funktion
JSON.stringify()
in JavaScript - Objekte manuell in JavaScript vergleichen
In diesem Tutorial wird erläutert, wie Sie Objekte manuell oder mithilfe der Funktion JSON.stringify()
in JavaScript vergleichen.
Vergleichen Objekte mit der Funktion JSON.stringify()
in JavaScript
Der Vergleich von Variablen in JavaScript ist relativ einfach; wir müssen nur den Vergleichsoperator ===
zwischen zwei Variablen verwenden. Die Variablen können jeden Datentyp haben, wie Strings und Integer.
Der Vergleichsoperator gibt einen booleschen Wert zurück, der je nach zu vergleichenden Variablen true
oder false
sein kann. Vergleichen wir beispielsweise zwei Variablen eines String-Typs mit dem Vergleichsoperator.
Siehe den Code unten.
var a = 'Apple';
var b = 'Apple';
console.log(a === b)
Ausgabe:
true
In der Ausgabe zeigt der boolesche Wert true
an, dass die beiden Variablen identisch sind. Ebenso können Sie auch Zahlen vergleichen. Kommen wir nun zum Vergleich von Objekten in JavaScript.
Der Vergleich von Objekten ist nicht einfach, da sie mehrere Werte enthalten und auch Objekte darin enthalten können. Die schnelle und einfache Methode zwei Objekte zu vergleichen ist die Funktion JASON.stringify()
. Der Nachteil dieser Methode ist, dass die Reihenfolge der Eigenschaften im Vergleich wichtig ist.
Diese Funktion vergleicht die erste Eigenschaft eines Objekts mit der ersten Eigenschaft des anderen Objekts usw. Wenn wir die Reihenfolge der Eigenschaften in einem der Objekte ändern, funktioniert diese Methode nicht. Vergleichen wir zum Beispiel zwei Objekte mit der Funktion JSON.strigify()
.
Siehe den Code unten.
const fruit1 = {
name: 'Apple',
price: '2'
};
const fruit2 = {
name: 'Apple',
price: '2'
};
console.log(JSON.stringify(fruit1) === JSON.stringify(fruit2))
Ausgabe:
true
In diesem Code vergleichen wir zwei Objekte, die jeweils zwei Eigenschaften enthalten. Aus der Ausgabe sind die beiden Objekte gleich. Ändern wir nun die Reihenfolge der beiden Eigenschaften in einem Objekt und vergleichen sie dann mit der Funktion JSON.stringify()
mit dem anderen.
Siehe den Code unten.
const fruit1 = {
name: 'Apple',
price: '2'
};
const fruit2 = {
price: '2',
name: 'Apple'
};
console.log(JSON.stringify(fruit1) === JSON.stringify(fruit2))
Ausgabe:
false
In der Ausgabe ist das Ergebnis false
. Wir haben die Reihenfolge der Eigenschaften des zweiten Objekts geändert; Dies ist der Nachteil dieser Methode.
Objekte manuell in JavaScript vergleichen
Die obige Methode hat einen Nachteil, sodass wir unsere eigene Funktion zum Vergleichen zweier Objekte erstellen können, sodass wir uns nicht um die Reihenfolge der Eigenschaften der Objekte kümmern müssen.
Lassen Sie uns zum Beispiel eine Funktion zum Vergleichen der obigen Objekte in JavaScript erstellen. Siehe den Code unten.
function ObjCompare(obj1, obj2) {
if (obj1.name === obj2.name && obj1.price === obj2.price) {
return true;
};
return false;
}
const fruit1 = {
name: 'Apple',
price: '2'
};
const fruit2 = {
price: '2',
name: 'Apple'
};
console.log(ObjCompare(fruit1, fruit2))
Ausgabe:
true
Im obigen Code haben wir die Funktion ObjCompare()
erstellt, die zwei Objekte unabhängig von ihrer Reihenfolge nach ihren Eigenschaften vergleicht. Die Funktion gibt nur true
zurück, wenn Name und Preis der beiden Objekte gleich sind; andernfalls wird false
zurückgegeben.
Sie können auch Ihre eigene Funktion erstellen, um mehrere Eigenschaften zu vergleichen oder eine Eigenschaft, die Sie vergleichen möchten, aus allen verfügbaren Eigenschaften zu vergleichen. Sie können auch eine andere Funktion erstellen, um mehr als zwei Objekte gleichzeitig zu vergleichen.
Nehmen wir nun an, wir haben zwei Objekte mit vielen Eigenschaften und möchten alle diese Eigenschaften vergleichen. Die Erstellung dieser Art von Funktion wird viel Zeit in Anspruch nehmen.
Stattdessen können wir die Funktion Object.keys()
verwenden, um alle Schlüssel oder Eigenschaften einer Funktion zu erhalten und diese mit einer Schleife zu vergleichen. Wenn alle Eigenschaften gleich sind, gibt die Funktion true
zurück; andernfalls wird false
zurückgegeben.
Lassen Sie uns zum Beispiel diese Funktion erstellen und mit den beiden obigen Objekten testen. Siehe den Code unten.
function ObjCompare(obj1, obj2) {
const Obj1_keys = Object.keys(obj1);
const Obj2_keys = Object.keys(obj2);
if (Obj1_keys.length !== Obj2_keys.length) {
return false;
}
for (let k of Obj1_keys) {
if (obj1[k] !== obj2[k]) {
return false;
}
}
return true;
}
const fruit1 = {
name: 'Apple',
price: '2',
color: 'red'
};
const fruit2 = {
price: '2',
name: 'Apple',
color: 'red'
};
console.log(ObjCompare(fruit1, fruit2))
Ausgabe:
true
In diesem Programm wird die erste if
-Anweisung innerhalb der Funktion ObjCompare()
verwendet, um die Länge von Eigenschaften oder Schlüsseln innerhalb der beiden Objekte zu überprüfen.
Wenn sie nicht gleich sind, gibt die Funktion false
zurück und geht nicht in die Schleife über. Diese Methode funktioniert auch dann gut, wenn wir die Reihenfolge der Eigenschaften oder die Schlüssel eines der Objekte ändern. Sie können diese Funktion auch ändern, um drei oder mehr Objekte gleichzeitig zu vergleichen.
Verwandter Artikel - JavaScript Object
- Objekte aus einem Array in JavaScript suchen
- Holen Sie sich den Wert des Objekts durch eine Referenz auf den Schlüssel
- JavaScript-Objekt zerstören
- Objekt im Array nach Eigenschaftswert in JavaScript suchen
- Objekte in JavaScript drucken
- Sortieren Array von Objekten nach einzelnen Schlüssel mit Datum Wert