„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Machen Sie Ihr Leben einfacher mit Set Compositions

Machen Sie Ihr Leben einfacher mit Set Compositions

Veröffentlicht am 09.11.2024
Durchsuche:726

Endlich! Als Set in der Vergangenheit eingeführt wurde, hat es unser Leben bereits verbessert. Wir konnten auf einfache Weise eindeutige Listen erstellen, erzielten aber auch eine bessere Leistung beim Suchen und Festlegen von Elementen in diesen Listen.

Das war großartig, aber uns fehlten immer noch einige Dinge, die andere Sprachen hatten. Und das ist wahr, denn wir waren es. Mit den neuen Kompositionsmethoden, die Set im Jahr 2024 hinzugefügt werden, werden wir endlich in der Lage sein, Vereinigung, Schnittmenge, Differenz und mehr mit einfachen Aufrufen durchzuführen.

Lasst uns ohne weitere Umschweife darauf eingehen.

Unterschied

Gibt einen neuen Satz zurück, der Elemente enthält, die im ersten Satz, aber nicht im zweiten vorhanden sind.

Make your life easier with Set Compositions

Beispiel: Sie möchten sehen, welche Benutzer die Website in dieser Woche besucht haben, die sie im letzten Monat nicht besucht haben.

Wie verwende ich es?

const thisWeekUsers = new Set([1, 2, 3, 4]);
const lastMonthUsers = new Set([3, 4, 5, 6]);

const newUsers = thisWeekUsers.difference(lastMonthUsers);

console.log(newUsers); // Set(2) { 1, 2 }

Wie haben wir das früher gemacht?

const thisWeekUsers = [1, 2, 3, 4];
const lastMonthUsers = [3, 4, 5, 6];

let newUsers = thisWeekUsers.filter(x => !lastMonthUsers.includes(x));

console.log(newUsers); // (2) [1,2]

Weitere Informationen unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/difference


Überschneidung

Gibt einen neuen Satz mit nur den Werten zurück, die in beiden Sätzen vorhanden sind.

Make your life easier with Set Compositions

Beispiel: Sie legen ein E-Book-Paket in den Warenkorb, hatten aber bereits einige dieser Bücher dort.

Wie verwende ich es?

const booksBundle = new Set([1, 2, 3, 4]);
const cart = new Set([3, 4, 5, 6]);

const booksToAdd = booksBundle.intersection(cart);

console.log(booksToAdd); // Set(2) { 3, 4 }

Wie haben wir das früher gemacht?

const booksBundle = [1, 2, 3, 4];
const cart = [3, 4, 5, 6];

const booksToAdd = booksBundle.filter(book => cart.includes(book));

console.log(booksToAdd); // (2) [3, 4]

Weitere Informationen unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/intersection


Symmetrischer Unterschied

Gibt einen neuen Satz mit den Werten zurück, die sich in keiner der Gruppen wiederholen.

Make your life easier with Set Compositions

Beispiel: Überbestände von Artikeln zwischen Filialen prüfen, um zu prüfen, welche Artikel umgetauscht werden können.

Wie verwende ich es?

const firstStore = new Set([1, 2, 3, 4]);
const secondStore = new Set([3, 4, 5, 6]);

const overstockedItems = firstStore.symmetricDifference(secondStore);

console.log(overstockedItems); // Set(4) { 1, 2, 5, 6 }

Wie haben wir das früher gemacht?

const firstStore = [1, 2, 3, 4];
const secondStore = [3, 4, 5, 6];

const allItems = [firstStore, secondStore].flat();
const overstockedItems = allItems.filter(item => {
  return !firstStore.includes(item) || !secondStore.includes(item);
});

console.log(overstockedItems); // (4) [1, 2, 5, 6]

Weitere Informationen unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/symmetricDifference


Union

Gibt einen neuen Satz mit den Werten beider Gruppen zurück, ohne jedoch Werte zu wiederholen.

Make your life easier with Set Compositions

Beispiel: Sie und Ihr Freund möchten Wiedergabelisten zusammenführen, aber einige Musikstücke sind gleich.

Wie verwende ich es?

const yourPlaylist = new Set([1, 2, 3, 4]);
const friendPlaylist = new Set([3, 4, 5, 6]);

const mergedPlaylist = yourPlaylist.union(friendPlaylist);

console.log(mergedPlaylist); // Set(6) { 1, 2, 3, 4, 5, 6 }

Wie haben wir das früher gemacht?

const yourPlaylist = [1, 2, 3, 4];
const friendPlaylist = [3, 4, 5, 6];

const mergedPlaylist = new Set([yourPlaylist, friendPlaylist].flat());

console.log(mergedPlaylist); // (6) [1, 2, 3, 4, 5, 6]

Weitere Informationen unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/union


Ist disjunkt von?

Es gibt einen Booleschen Wert zurück. Es ist wahr, wenn beide Mengen keine gemeinsamen Werte haben, und falsch, wenn sie mindestens einen gemeinsamen Wert haben.

Make your life easier with Set Compositions

Beispiel: Sehen Sie, dass es Produkte gibt, die Teil anderer Gruppen sind.

Wie verwende ich es?

const electronics = new Set([1, 2, 3, 4]);
const furniture = new Set([3, 4, 5, 6]);
const groceries = new Set(['apple']);

console.log(electronics.isDisjointFrom(furniture)); // false
console.log(electronics.isDisjointFrom(groceries)); // true

Wie haben wir das früher gemacht?

const electronics = [1, 2, 3, 4];
const furniture = [3, 4, 5, 6];
const groceries = ['apple'];

function isDisjoint(array1, array2) {
  return array1.every(item => !array2.includes(item));
}

console.log(isDisjoint(electronics, furniture)); // false
console.log(isDisjoint(electronics, groceries)); // true

Weitere Informationen unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/isDisjointFrom


Ist Obermenge/Teilmenge von?

Diese beiden Funktionen sind sehr ähnlich. Beide geben einen booleschen Wert zurück und sind direkte Gegensätze. Superset gibt „true“ zurück, wenn die Menge eine Obermenge einer anderen Menge ist, und Subset gibt „true“ zurück, wenn die Menge eine Teilmenge einer anderen Menge ist.

Ich füge diese Funktionen zusammen, weil es ausreicht, die Antwort auf eine davon zu kennen, um die andere zu kennen. Eine Menge kann nur eine Obermenge einer Teilmenge einer Menge sein.

Make your life easier with Set Compositions

Beispiel: Ermitteln Sie, ob Benutzer Teil einer Unternehmensgruppe sind.

Wie verwende ich es?

const itDepartment = new Set([1, 2, 3, 4]);
const genZFromToronto = new Set([3, 4]);

console.log(itDepartment.isSupersetOf(genZFromToronto)); // true
console.log(genZFromToronto.isSubsetOf(itDepartment)); // true

Wie haben wir das früher gemacht?

const itDepartment = [1, 2, 3, 4];
const genZFromToronto = [3, 4];

console.log(genZFromToronto.every(item => itDepartment.includes(item))); // true

Weitere Informationen unter:

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/isSupersetOf
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/isSubsetOf

Jetzt sind Sie bereit Es tut mir nicht leid, es in Ihrem Projekt zu verwenden!

Lassen Sie mich wissen, wenn Sie auch von diesem oder einem anderen Feature begeistert sind oder etwas anderes behandelt sehen möchten. Bis zum nächsten Mal o/

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/klauskpm/make-your-life-easier-with-set-compositions-45j?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3