1. La API básica de Map
- Crear: const mapa = nuevo Mapa()
- Insertar: map.set("nombre", "Zheng Jian")
- Leer: map.get("nombre")
- Juicio: map.has("nombre")
- borrar: mapa.borrar
- Tamaño: mapa.tamaño
- Recorrido: para de / para cada uno
dos, crea
const map = new Map()
3. Insertar
const map = new Map()
map.set("name", "郑建") // 字符串作为key
const functionKey = function() {}
map.set(functionKey, "函数做key") // 函数做为key
const objKey = {}
map.set(objKey, "对象做key") // 对象做为key
resultado:
Cuatro, lee
map.get("name") // "郑建"
map.get(functionKey) // "函数做key"
map.get(objKey) // "对象做key"
5. Juicio
map.has("name")
resultado:
Seis, tamaño
map.size
resultado:
7. Eliminar
map.delete("name")
resultado:
Ocho, transversal
1, para de
for (const it of map) {
console.log(it)
}
resultado:
2, para cada uno
map.forEach((value, key) => {
console.log(value, key)
})
resultado:
Nueve, la elección entre Mapa y Objeto
Pregunta: Ahora que tenemos Objeto, ¿por qué necesitamos un Mapa? ¿Están enfermos?
Elija entre cuatro direcciones:
Uso de memoria: los diferentes navegadores tienen diferencias obvias, pero dado un tamaño fijo de memoria, Map puede almacenar un 50 % más de pares clave-valor que Object.
Cuando encuentre una gran cantidad de datos estructurados, elija Mapa
Rendimiento de inserción : el rendimiento del mapa es ligeramente mejor, especialmente cuandose trata de una gran cantidad de operaciones de inserción , especialmente al elegir Mapa
Rendimiento de búsqueda : el rendimiento es equivalente, pero en el caso de una pequeña cantidad de "pares clave/valor" , el motor del navegador tendráestrategias de optimización relacionadas para Object , así que elija Object .
Rendimiento de eliminación: el rendimiento del mapa tiene ventajas obvias, y el uso de eliminar para eliminar las propiedades del objeto solo se desvincula , la memoria no se libera, no es una eliminación real y destruirá las propiedades rápidas de la estructura lineal en el motor V8, reduciendo en gran medida rendimiento de acceso Elija Mapa sin lugar a dudas .