Coder Social home page Coder Social logo

notes-es6-maps's Introduction

✨ ES6: Maps

tl;dr

  • Es un tipo de estructura de datos
  • Nos permite almacenar la información en pares clave-valor
  • Las claves son únicas, no se repiten => no tenemos pares clave-valor que se repitan

¿Para qué sirven? ¿Por qué usarlos?

  • Usamos Map principalmente para búsquedas rápidas (de valores asociados)

Ventajas de usar ES6 Map sobre Object

  • Si usamos objetos como diccionarios, estamos limitados por los tipos de valores que podemos tener como claves: sólo podemos usar valores que sean válidos como nombres de propiedades (number o string)
  • En un Map puedo usar cualquier tipo de valor como clave (incluyendo objetos y funciones)
  • En los objetos, el orden de las propiedades/claves no está garantizado (depende de la implementación del engine). Sólo porque agreguemos pares clave-valor en cierto orden, no implica que van a permanecer en ese orden cuando las iteremos
  • En un Map, el orden en el que agregamos las claves se mantiene
  • Podemos obtener el tamaño de un Map fácilmente, usando la propiedad size
  • Un Map puede ser iterado directamente
  • Map nos provee de ciertos métodos para, entre otras cosas, poder iterar las claves (ej: forEach)
  • Pueden ver otras diferencias con más detalle acá
  • Un Map puede tener ventajas de performance en casos donde agreguemos/saquemos pares clave-valor con frecuencia

Uso

Crear un nuevo Map

// crear un nuevo map/diccionario con los pares {"a" => 1, "b" => 2}
const m = new Map();

m.set('a', 1);
m.set('b', 2);

Obtener el tamaño

// obtener el tamaño (cantidad de pares mapeados) del diccionario
m.size;

Borrar/resetear todas las entradas del Map

m.clear();

Eliminar un par

m.delete('a'); // true
m.delete('c'); // false (la clave 'c' no existe en el map)

Obtener el valor mapeado a una clave

m.get('a'); // 1
m.get('z'); // undefined (la clave 'z' no existe en el map)

Preguntar si una clave existe

m.has('a'); // true
m.has('z'); // false

Iterar las claves

m.forEach((key, value) => console.log(`key: ${key} => value: ${value}`));
// también podemos usar for.. of

for(const [key, value] of m) {
  console.log(`${key} = ${value}`);
}

Construir un Map a partir de un Array

// para que funcione, cada elemento del array debe ser un par
const arr = [['a', 1], ['b', 2]];
const m = new Map(arr);

Etc... Ver más en MDN

notes-es6-maps's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.