Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée de Map/WeakMap dans les compétences ECMAScript6_javascript

WBOY
Libérer: 2016-05-16 15:55:24
original
1170 Les gens l'ont consulté

L'objet JS lui-même est une structure clé-valeur. Pourquoi ES6 doit-il ajouter Map ? Quelle est la différence entre lui et les objets JS ordinaires ?

1.Carte

1. Constructeur de carte

Regardons d'abord l'utilisation simple de Map

// 字符串作为key, 和JS对象类似
var map = new Map()
// set
map.set('name', 'John')
map.set('age', 29)
// get
map.get('name') // John
map.get('age') // 29
Copier après la connexion

Avec ce code, il semble qu'il ne soit pas aussi concis que les objets JS

Mais la puissance de Map est que sa clé peut être de n'importe quel type

// 对象作为key演示
var xy = {x: 10, y: 20}  // 坐标
var wh = {w: 100, h: 200} // 宽高
var map = new Map()
// set
map.set(xy, '坐标')
map.set(wh, '宽高')
// get
map.get(xy) // '坐标'
map.get(wh) // '宽高'
Copier après la connexion

Ce qui précède montre une carte utilisant des objets comme clés. Ce qui suit est une illustration

Le constructeur Map prend également en charge le passage de tableaux

var map = new Map([["name", "John"], ["age", "29"]])
 
// 遍历key
for (var key of map.keys()) {
  console.log(key) // name, age
}

Copier après la connexion

2. Itération

Utilisez for of pour parcourir Map comme Set, appelez map.keys() pour les clés, map.values() pour les valeurs et map.entries() pour les entités clé-valeur

var map = new Map()
// set
map.set('name', 'John')
map.set('age', 29)
// get
map.get('name') // 'John'
map.get('age') // 29
 
// 遍历key
for (var key of map.keys()) {
  console.log(key)
}
 
// 遍历value
for (var val of map.values()) {
  console.log(val)
}
 
// 遍历实体
for (var arr of map.entries()) {
  console.log('key: ' + arr[0] + ', value: ' + arr[1])
}
 
// 遍历实体的简写
for (var [key, val] of map.entries()) {
  console.log('key: ' + key + ', value: ' + val)
}
 

Copier après la connexion

3. Méthodes et propriétés

2. Carte faible

Différences par rapport à la carte

N'accepte pas les valeurs de type de base comme noms de clé
Pas de clés, valeurs, entrées et taille
Il existe les méthodes suivantes

Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal