Maison interface Web js tutoriel Comment calculer efficacement les différences entre les ensembles en JavaScript à l'aide de tableaux ?

Comment calculer efficacement les différences entre les ensembles en JavaScript à l'aide de tableaux ?

Oct 21, 2024 pm 01:49 PM

How to Efficiently Compute Set Differences in JavaScript Using Arrays?

Calculs efficaces des différences d'ensembles à l'aide de tableaux JavaScript

Dans le domaine de la programmation JavaScript, calculer efficacement la différence d'ensemble entre deux tableaux est une tâche courante . Explorons quelques-unes des approches les plus efficaces et les plus élégantes :

Exploiter les fonctions natives

Une méthode simple consiste à utiliser les fonctions intégrées de JavaScript. La fonction filter() peut être utilisée pour conserver les éléments de l'ensemble A qui n'existent pas dans l'ensemble B. Cette approche offre une solution concise et lisible.

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

const diff = A.filter(x =&gt; B.indexOf(x) &lt; 0);
console.log(diff); // [2]
Copier après la connexion

Exploiter les ensembles

Dans les cas où les éléments en double doivent être exclus, les ensembles constituent un outil précieux. JavaScript fournit l'objet Set, qui garantit des éléments uniques. En convertissant les tableaux en ensembles, la différence entre les ensembles peut être obtenue à l'aide de l'opérateur moins.

<code class="javascript">const setA = new Set([1, 2, 3, 4]);
const setB = new Set([1, 3, 4, 7]);

const diff = new Set([...setA].filter(x =&gt; !setB.has(x)));
console.log(diff); // Set { 2 }</code>
Copier après la connexion

Optimisation spécifique à Gecko

Pour les navigateurs basés sur Mozilla Gecko, tirer parti de la méthode optimisée Set.prototype.delete() peut encore améliorer les performances lors du calcul de la différence définie. En itérant sur l'ensemble B et en supprimant ses éléments de l'ensemble A, la différence peut être obtenue efficacement.

<code class="javascript">const setA = new Set([1, 2, 3, 4]);
const setB = new Set([1, 3, 4, 7]);

setB.forEach(x =&gt; setA.delete(x));
console.log(setA); // Set { 2 }</code>
Copier après la connexion

Solutions de bibliothèque

Alors que les fonctions natives offrent une base solide , les bibliothèques légères peuvent fournir une optimisation et une utilité supplémentaires. La bibliothèque Underscore, par exemple, propose la fonction _.difference(), spécialisée dans le calcul des différences entre ensembles avec des options configurables.

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

const diff = _.difference(A, B);
console.log(diff); // [2]</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Remplacer les caractères de chaîne en javascript

Tutoriel de configuration de l'API de recherche Google personnalisé Tutoriel de configuration de l'API de recherche Google personnalisé Mar 04, 2025 am 01:06 AM

Tutoriel de configuration de l'API de recherche Google personnalisé

Exemple Couleurs Fichier JSON Exemple Couleurs Fichier JSON Mar 03, 2025 am 12:35 AM

Exemple Couleurs Fichier JSON

8 Superbes plugins de mise en page JQuery Page 8 Superbes plugins de mise en page JQuery Page Mar 06, 2025 am 12:48 AM

8 Superbes plugins de mise en page JQuery Page

10 Highlighters de syntaxe jQuery 10 Highlighters de syntaxe jQuery Mar 02, 2025 am 12:32 AM

10 Highlighters de syntaxe jQuery

Créez vos propres applications Web Ajax Créez vos propres applications Web Ajax Mar 09, 2025 am 12:11 AM

Créez vos propres applications Web Ajax

Qu'est-ce que & # x27; ceci & # x27; en javascript? Qu'est-ce que & # x27; ceci & # x27; en javascript? Mar 04, 2025 am 01:15 AM

Qu'est-ce que & # x27; ceci & # x27; en javascript?

10 tutoriels JavaScript & jQuery MVC 10 tutoriels JavaScript & jQuery MVC Mar 02, 2025 am 01:16 AM

10 tutoriels JavaScript & jQuery MVC

See all articles