Différence : 1. Set fait référence à la structure "set", tandis que Map fait référence à la structure "dictionnaire" ; 2. Set stocke les éléments sous la forme de "[valeur, valeur]", tandis que Map stocke les éléments sous la forme de "[key, value]"; 3. Map peut utiliser get() pour trouver une valeur spécifique par clé et la renvoyer, mais set ne le peut pas.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
Brève description :
La différence entre les ensembles et les dictionnaires :
ES6 ajoute une nouvelle structure de données, similaire à un tableau, mais les membres sont uniques et non ordonnés, et il n'y a pas de valeurs en double.
Set lui-même est un constructeur utilisé pour générer la structure de données Set.
Les objets Set vous permettent de stocker des valeurs uniques de tout type, qu'il s'agisse de valeurs primitives ou de références d'objets.
const s = new Set() [1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x)) for (let i of s) { console.log(i) // 1 2 3 4 } // 去重数组的重复对象 let arr = [1, 2, 3, 2, 1, 1] [... new Set(arr)] // [1, 2, 3]
Remarque : lors de l'ajout de valeurs à Set, aucune conversion de type ne se produit, donc `5` et `"5"` sont deux valeurs différentes. Set détermine en interne si deux valeurs sont différentes. L'algorithme utilisé est appelé "Égalité de même valeur-zéro", qui est similaire à l'opérateur **égalité exacte** (`===` La principale différence est *). *`NaN` est égal à lui-même, tandis que l'opérateur d'égalité exacte considère que `NaN` n'est pas égal à lui-même. **
let set = new Set(); let a = NaN; let b = NaN; set.add(a); set.add(b); set // Set {NaN} let set1 = new Set() set1.add(5) set1.add('5') console.log([...set1]) // [5, "5"]
Méthode de fonctionnement :
add(value) : Nouveau, équivalent à push in array.
delete(value) : Supprimez la valeur dans la collection si elle existe.
has(value) : Déterminez si la valeur existe dans l'ensemble.
clear() : Effacez la collection.
Méthode Traversal : méthode Traversal (l'ordre de parcours est l'ordre d'insertion)
keys() : renvoie un itérateur contenant toutes les clés de la collection.
values() : renvoie un itérateur contenant toutes les valeurs de la collection.
entries() : renvoie un itérateur clé-valeur contenant tous les éléments de l'objet Set.
forEach(callbackFn, thisArg) : Utilisé pour effectuer des opérations de rappelFn sur les membres de la collection. Si le paramètre thisArg est fourni, ceci dans le rappel sera ce paramètre Il n'y a pas de valeur de retour.
est une structure de paires clé-valeur avec une vitesse de recherche extrêmement rapide.
const m = new Map() const o = {p: 'haha'} m.set(o, 'content') m.get(o) // content m.has(o) // true m.delete(o) // true m.has(o) // false
Comment fonctionner :
Méthode Traversal :
Set :
fait référence à la structure "set"
[valeur, valeur], la valeur clé et le nom de la clé sont cohérents (ou seulement la valeur clé, pas de nom de clé).
Carte :
fait référence à la structure "dictionnaire"
[clé, valeur], la valeur de la clé et le nom de la clé sont incohérents
【Recommandations associées : tutoriel vidéo javascript, front-end web】
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!