Prefacio
Intención original : Recientemente estaba leyendo el libro "Comprensión profunda de Es6" . Antes no había aprendido completamente la gramática de Es6. También aproveché la etapa ocupada para volver a leer y organizar las notas para compartir con todos. no te gusta, no rocíes.
Adecuado para la multitud: el desarrollo primario de front-end, el desvío de los grandes.
Estructura de contenido: Conozca el mapa -> Uso básico -> Escenarios de aplicación
La estructura del mapa es similar a la sintaxis de la estructura de conjuntos que explicamos en la sección anterior "Comprender el conjunto de estructuras de datos, solo toma 5 minutos" . La diferencia es que la sintaxis del mapa es un formato de par clave-valor de matriz, y el mapa también maneja el problema de evitar la conversión de tipo forzada de clave-valor de objeto. El mapa se resuelve utilizando las características de las matrices. Todos sabemos que las matrices se pueden pasar en cualquier tipo de valor, por lo que la estructura del mapa también recibe todo tipo de valores. Acabamos de decir que el valor no se verá obligado a escribir como el objeto. Por ejemplo, 24 y "24" son dos tipos de relación, que no se afectarán entre sí.
Gramática básica
Map.set agregar
let map = new Map()
map.set("name", "蛙人")
console.log(map)
En el ejemplo anterior, Map
se crea un objeto. Como dijimos anteriormente, Map
es un objeto de matriz. También recibe un objeto de matriz, que es una matriz bidimensional. Los parámetros en el interior están en forma de pares clave-valor, y luego map
se establece el valor El map.set
método recibe dos parámetros, el primero El key
segundo es el value
valor. En este momento, el objeto Mapa ha agregado un name
valor
Longitud del tamaño del mapa
let map = new Map()
map.set("name", "蛙人")
console.log(map.size) // 1
En el ejemplo anterior, el Map
objeto proporciona size
atributos de visualización para ver Map
varios conjuntos de datos en la estructura actual .
Map.get get
let map = new Map()
map.set("name", "蛙人")
console.log(map.get("name")) // 蛙人
En el ejemplo anterior, usamos el Map.get
método para obtener el valor del atributo del objeto. Si obtiene un Map
objeto que no existe, regrese undefined
.
Map.has consulta
let map = new Map()
map.set("name", "蛙人")
console.log(map.has("name")) // true
En el ejemplo anterior, lo que se Map.has
devuelve es un Boolean
valor, y se Map
buscará en este si se encuentra y se devuelve true
, de lo contrario se devolverá false
, lo que generalmente se usa para detectar la existencia del valor en este Mapa.
Map.delete eliminar
let map = new Map()
map.set("name", "蛙人")
console.log(map.delete("name")) // true
En el ejemplo anterior, el Map.delete
método elimina un valor en la Map
estructura y regresa si el valor existe en la estructura, y regresa true
si elimina un valor inexistente false
.
Map.clear clear
let map = new Map()
map.set("name", "蛙人")
map.clear()
En el ejemplo anterior, Map.clear
este método borrará Map
todos los atributos de la estructura.
Usos del mapa para cada uno
let map = new Map([
["name", "蛙人"],
["age", 24],
["sex", "male"]
])
map.forEach((value, key, self) => {
console.log(value, key, self)
})
En el ejemplo anterior, puede ver que la Map
estructura es una matriz bidimensional, que tiene la forma de pares clave-valor. La estructura del mapa también se puede recorrer utilizando forEach, que recibe 3 parámetros:
- El valor del objeto
- El valor clave del objeto
- Objeto en sí
Nota: Esto es diferente de la estructura Set. Los dos primeros parámetros de la estructura Set son valores de objeto. Esto se debe a que la estructura Set no tiene el concepto de un valor clave.
Mapa convertir objetos rápidamente
Mencionamos anteriormente que se Map
puede forEach
atravesar, por lo que el análisis de bucle también puede formar un nuevo objeto. Entonces, el método Es6 proporciona una nueva forma de convertir rápidamente esta estructura en un objeto.
let map = new Map([
["name", "蛙人"],
["age", 24],
["sex", "male"]
])
console.log(Object.fromEntries(map)) // {name: "蛙人", age: 24, sex: "male"}
En el ejemplo anterior, la estructura de datos de Map se puede convertir rápidamente a un formato literal de objeto tradicional. También puede leer mi artículo "Resumen | ¿Qué características extiende el objeto Es6?" 》
La diferencia entre la estructura del conjunto y la estructura del mapa
Resumen de una frase: la estructura Set se utiliza principalmente para determinar si existe un valor en el objeto, y la estructura Map se utiliza principalmente para obtener el valor del objeto a partir de la estructura actual.
Escenarios de aplicación
Caché de datos
En algunos casos, debemos darnos cuenta. Solicito la API de la interfaz de backend por primera vez, y después de solicitarla, la guardaré en caché por segunda vez, en lugar de enviar la API de la interfaz.
let map = new Map()
function fn() {
if (!map.has("api")) {
let res = axios.get("api")
map.set("api", res.data)
return res.data
} else {
return map.get("api")
}
}
fn()
Abandonado si más hombre
Cuando estemos en requisitos de proyecto, definitivamente encontraremos un estado correspondiente a una operación, como sigue:
let text = ""
if (status == 1) {
text = "启用"
} else if (status = 2) {
text = "停用"
}
// 省略...
// 以上我们需要写一堆的 if else这样代码非常的繁琐冗余
let operation = new Map([
[1, "启用"],
[2, "停用"],
[3, "注销"]
])
text = operation.get(status) // 这样实现代码非常简洁
agradecer
Gracias por abrir este artículo durante su apretada agenda. Espero que le sea útil. Si tiene alguna pregunta, puede corregirme.
Soy un hombre rana, si crees que está bien, por favor dame un pulgar hacia arriba.
Los amigos interesados pueden unirse [grupo de intercambio de círculo de entretenimiento de front-end] Invitamos a todos a comunicarse y discutir
Grandes elogios y buenos artículos en el pasado
"¿Conoce todos los consejos de JavaScript que se utilizan en estos trabajos?" 》
"Comprensión del conjunto de estructura de datos, ¡hasta 5 minutos! 》
"Deconstrucción: ¡Haga que el acceso a los datos sea más conveniente! 》
"¿Realmente comprende las características de ES6? 》
"La diferencia entre var, let y const que puede comprender de un vistazo"