1var numbers = [1, 4, 9];
2var doubles = numbers.map(function(num) {
3 return num * 2;
4});
5// doubles is now [2, 8, 18]. numbers still [1, 4, 9]
6
1var kvArray = [["clave1", "valor1"], ["clave2", "valor2"]];
2
3// El constructor por defecto de Map para transforar un Array 2D (clave-valor) en un mapa
4var miMapa = new Map(kvArray);
5
6miMapa.get("clave1"); // devuelve "valor1"
7
8// Usando la función Array.from para transformar el mapa a un Array 2D clave-valor.
9console.log(Array.from(miMapa)); // Muestra exactamente el mismo Array que kvArray
10
11// O usando los iteradores de claves o valores y convirtiendo a array.
12console.log(Array.from(miMapa.keys())); // Muestra ["clave1", "clave2"]
13
1function each(collection, action) {
2 if (Array.isArray(collection)) {
3 for (var i = 0; i < collection.length; i++) {
4 action(collection[i], i, collection);
5 }
6 } else {
7 for (var key in collection) {
8 action(collection[key], key, collection);
9 }
10 }
11}
1var miMapa = new Map();
2
3var claveObj = {},
4 claveFunc = function () {},
5 claveCadena = "una cadena";
6
7// asignando valores
8miMapa.set(claveCadena, "valor asociado con 'una cadena'");
9miMapa.set(claveObj, "valor asociado con claveObj");
10miMapa.set(claveFunc, "valor asociado with claveFunc");
11
12miMapa.size; // 3
13
14// obteniendo los valores
15miMapa.get(claveCadena); // "valor asociado con 'una cadena'"
16miMapa.get(claveObj); // "valor asociado con claveObj"
17miMapa.get(claveFunc); // "valor asociado con claveFunc"
18
19miMapa.get("una cadena"); // ""valor asociado con 'una cadena'"
20 // porque claveCadena === 'una cadena'
21miMapa.get({}); // undefined, porque claveObj !== {}
22miMapa.get(function() {}) // undefined, porque claveFunc !== function () {}
23
24var myMap = new Map();
25myMap.set("bar", "foo");
26
27myMap.delete("bar"); // Retorna true. Eliminado con éxito.
28myMap.has("bar"); // Retorna false. El elemento "bar" ya no está presente.
1function map(collection, action) {
2 let result = [];
3 if (Array.isArray(collection)) {
4 for (let i = 0; i < collection.length; i++) {
5 result.push(action(collection[i], i, collection));
6 }
7 }
8 else {
9 for (let key in collection) {
10 result.push(action(collection[key], key, collection));
11 }
12 } return result;
13}
14
1miMapa.forEach(function(valor, clave) {
2 console.log(clave + ' = ' + valor);
3});
4// Mostrará 2 logs; el primero con "0 = cero" y el segundo con "1 = uno"