JavaScript ne fournit pas d'objet Set intégré, mais les développeurs ont souvent besoin de pouvoir stocker des valeurs uniques et non ordonnées avec une recherche rapide, capacités d'ajout et de suppression.
Utilisation d'un objet avec des valeurs booléennes :
Comme suggéré dans la question, un objet peut être utilisé pour imiter un ensemble. Les clés représentent les valeurs et les valeurs sont toutes définies sur true (ou sur toute valeur non nulle). Cette approche permet une recherche et une suppression rapides, mais l'ajout devient plus lent à mesure que le nombre de clés augmente.
Objet défini par ES6 :
Si votre environnement prend en charge ES6 (par exemple, les navigateurs modernes ou transpilés code), vous pouvez utiliser l’objet Set intégré. Il offre d'excellentes performances pour toutes les opérations définies et permet en outre une itération facile sur les éléments et d'éviter la coercition de chaîne.
Polyfills et objets pré-construits :
Pour les environnements qui ne prennent pas en charge ES6, vous pouvez utiliser des polyfills comme "ES6-Set" ou des objets prédéfinis comme "miniSet" ou "set.js" qui offrent des fonctionnalités similaires à l'objet ES6 Set. Ceux-ci offrent des avantages tels que la compatibilité avec les anciens navigateurs ou une empreinte de code plus petite.
Détails de mise en œuvre :
Utilisation d'un objet :
<code class="javascript">const setObj = {}; setObj["item1"] = true; if ("item1" in setObj) { // fast lookup console.log("Item found"); } delete setObj["item1"]; // fast deletion</code>
Utilisation de l'objet Set ES6 :
<code class="javascript">const set = new Set(); set.add("item1"); if (set.has("item1")) { // fast lookup console.log("Item found"); } set.delete("item1"); // fast deletion</code>
Utilisation d'un Polyfill :
<code class="javascript">import Set from "es6-set"; const set = new Set(["item1", "item2"]); console.log(...set.keys()); // easy iteration</code>
Utilisation d'un pré- Objet construit :
<code class="javascript">const miniSet = new MiniSet("item1", "item2"); if (miniSet.has("item1")) { // fast lookup console.log("Item found"); } miniSet.remove("item1"); // fast deletion</code>
Le meilleur choix dépend des exigences spécifiques et du support disponible dans votre environnement. Pour les applications complexes ou critiques en termes de performances, l'objet ES6 Set est idéal. Sinon, l'utilisation d'un objet, d'un polyfill ou d'un ensemble d'objets prédéfinis peut fournir une solution raisonnable.
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!