Abgebildete Arraysymmetrische Differenz

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 uns mit dem Konzept der symmetrischen Differenz befassen und wie es in JavaScript mithilfe der symmetricDifferenceBy()-Funktion implementiert werden kann. Wir werden untersuchen, wie diese Funktion verwendet werden kann, um die einzigartigen Werte zwischen zwei Arrays zu finden, nachdem eine bereitgestellte Funktion auf jedes Element beider Arrays angewendet wurde. Dieses Lab ist dazu gedacht, Ihnen zu helfen, diese leistungsstarke JavaScript-Methode besser zu verstehen und wie sie in Ihren eigenen Projekten eingesetzt werden kann.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced 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/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} javascript/data_types -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} javascript/arith_ops -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} javascript/comp_ops -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} javascript/higher_funcs -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} javascript/destr_assign -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} javascript/spread_rest -.-> lab-28487{{"Abgebildete Arraysymmetrische Differenz"}} end

Abgebildete Arraysymmetrische Differenz

Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein.

Diese Funktion gibt die symmetrische Differenz zwischen zwei Arrays zurück, nachdem die bereitgestellte Funktion auf jedes Element beider Arrays angewendet wurde. So funktioniert es:

  • Erstellen Sie aus jedem Array einen Set, um die einzigartigen Werte jedes Arrays zu erhalten, nachdem fn auf sie angewendet wurde.
  • Verwenden Sie Array.prototype.filter() auf jedem von ihnen, um nur die Werte zu behalten, die nicht in dem anderen enthalten sind.

Hier ist der Code für die symmetricDifferenceBy-Funktion:

const symmetricDifferenceBy = (a, b, fn) => {
  const sA = new Set(a.map((v) => fn(v))),
    sB = new Set(b.map((v) => fn(v)));
  return [
    ...a.filter((x) => !sB.has(fn(x))),
    ...b.filter((x) => !sA.has(fn(x)))
  ];
};

Sie können symmetricDifferenceBy wie folgt verwenden:

symmetricDifferenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [ 1.2, 3.4 ]
symmetricDifferenceBy(
  [{ id: 1 }, { id: 2 }, { id: 3 }],
  [{ id: 1 }, { id: 2 }, { id: 4 }],
  (i) => i.id
);
// [{ id: 3 }, { id: 4 }]

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu der abgebildeten Arraysymmetrischen Differenz abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.