Maison  >  Article  >  interface Web  >  Explication détaillée de Map/WeakMap dans les compétences ECMAScript6_javascript

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

WBOY
WBOYoriginal
2016-05-16 15:55:241171parcourir

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

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) // '宽高'

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
}

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)
}
 

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.

Déclaration:
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