Heim > Web-Frontend > js-Tutorial > Hauptteil

Was sind die effizienten und eleganten Techniken zur Mengendifferenzberechnung in Javascript?

Mary-Kate Olsen
Freigeben: 2024-10-21 10:49:02
Original
965 Leute haben es durchsucht

What are the Efficient and Elegant Techniques for Set Difference Computation in Javascript?

Effiziente und elegante Mengendifferenzberechnung in Javascript

Wenn Sie mit Mengenoperationen in Javascript arbeiten, finden Sie eine effiziente und elegante Möglichkeit, die Menge zu berechnen Der Unterschied (A – B) ist eine häufige Herausforderung. Lassen Sie uns einige Methoden erkunden.

Ansatz mit nativen Funktionen

Eine einfache Lösung ist die Verwendung nativer Javascript-Funktionen:

<code class="javascript">var A = [1, 2, 3, 4];
var B = [1, 3, 4, 7];

var diff = A.filter(function(x) {
  return B.indexOf(x) < 0;
});

console.log(diff); // [2]
Nach dem Login kopieren

Hier die Filterfunktion iteriert über Array A und prüft mithilfe der indexOf-Operation, ob jedes Element in B vorhanden ist. Wenn das Element nicht gefunden wird, wird es dem Differenzarray diff hinzugefügt.

Verkettungs- und Sortiertrick

Ein anderer Ansatz nutzt das Javascript-Verkettungs- und Sortierverhalten aus:

<code class="javascript">var A = [1, 2, 3, 4];
var B = [1, 3, 4, 7];

A = A.concat(B).sort().filter((v, i, a) => a[i] !== a[i + 1]);

console.log(A); // [2, 7]</code>
Nach dem Login kopieren

Durch die Verkettung und Sortierung beider Arrays erhalten wir eine geordnete Liste eindeutiger Elemente. Durch das Herausfiltern aufeinanderfolgender Duplikate erhalten wir den Mengenunterschied.

Objektbasierter Ansatz

Die Nutzung eines Hashmap-ähnlichen Objekts zum Speichern eindeutiger Elemente aus beiden Arrays bietet eine effiziente Lösung:

<code class="javascript">var A = [1, 2, 3, 4];
var B = [1, 3, 4, 7];

var setA = {};
A.forEach(function(x) { setA[x] = true; });

var setDiff = {};
B.forEach(function(x) { setDiff[x] = true; });

Object.keys(setA).forEach(function(x) {
  if (!setDiff[x]) {
    setDiff[x] = true;
  }
});

var diff = Object.keys(setDiff);

console.log(diff); // [2, 7]</code>
Nach dem Login kopieren

Dieser Ansatz verwendet Objekte als Hashmaps, um Elemente in beiden Arrays zu verfolgen und die Differenz effizient zu berechnen.

Diese Methoden bieten unterschiedliche Kompromisse in Bezug auf Effizienz und Eleganz. Wählen Sie diejenige aus, die Ihren spezifischen Anforderungen am besten entspricht.

Das obige ist der detaillierte Inhalt vonWas sind die effizienten und eleganten Techniken zur Mengendifferenzberechnung in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!