Objekteigenschaften basierend auf einer Funktion abgleichen

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir die matchesWith-Funktion in JavaScript erkunden. Ziel dieses Labs ist es, zu lernen, wie man zwei Objekte vergleicht und feststellt, ob sie äquivalente Eigenschaftswerte enthalten, basierend auf einer bereitgestellten Funktion. Dazu werden wir Object.keys(), Array.prototype.every() und Object.prototype.hasOwnProperty() verwenden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") subgraph Lab Skills javascript/variables -.-> lab-28337{{"Objekteigenschaften basierend auf einer Funktion abgleichen"}} javascript/data_types -.-> lab-28337{{"Objekteigenschaften basierend auf einer Funktion abgleichen"}} javascript/arith_ops -.-> lab-28337{{"Objekteigenschaften basierend auf einer Funktion abgleichen"}} javascript/comp_ops -.-> lab-28337{{"Objekteigenschaften basierend auf einer Funktion abgleichen"}} javascript/array_methods -.-> lab-28337{{"Objekteigenschaften basierend auf einer Funktion abgleichen"}} end

Übereinstimmen von Objekteigenschaften mit einer Funktion

Um zu beginnen, die Programmierung zu üben, öffnen Sie das Terminal/SSH und geben Sie node ein.

Diese Funktion vergleicht zwei Objekte und überprüft, ob das erste Objekt äquivalente Eigenschaftswerte wie das zweite enthält. Dies geschieht basierend auf einer bereitgestellten Funktion.

Um diese Funktion zu verwenden, folgen Sie diesen Schritten:

  • Verwenden Sie Object.keys(), um alle Schlüssel des zweiten Objekts abzurufen.
  • Verwenden Sie Array.prototype.every(), Object.prototype.hasOwnProperty() und die bereitgestellte Funktion, um zu bestimmen, ob alle Schlüssel im ersten Objekt existieren und äquivalente Werte haben.
  • Wenn keine Funktion bereitgestellt wird, werden die Werte mit dem Gleichheitsoperator verglichen.
const matchesWith = (obj, source, fn) =>
  Object.keys(source).every((key) =>
    obj.hasOwnProperty(key) && fn
      ? fn(obj[key], source[key], key, obj, source)
      : obj[key] == source[key]
  );

Hier ist ein Beispiel, wie diese Funktion verwendet werden kann:

const isGreeting = (val) => /^h(?:i|ello)$/.test(val);
matchesWith(
  { greeting: "hello" },
  { greeting: "hi" },
  (oV, sV) => isGreeting(oV) && isGreeting(sV)
); // true

Dieses Beispiel überprüft, ob die beiden Objekte äquivalente Werte für die greeting-Eigenschaft haben. Es verwendet die isGreeting-Funktion, um sicherzustellen, dass beide Werte gültige Begrüßungen sind.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Übereinstimmen von Objekteigenschaften basierend auf einer Funktion" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.