Mapa en JavaScript

En este artículo, estaríamos discutiendo el objeto Map proporcionado por ES6 . El mapa es una colección de elementos donde cada elemento se almacena como un par clave, valor . El objeto de mapa puede contener objetos y valores primitivos como clave o valor. Cuando iteramos sobre el objeto del mapa, devuelve el par clave, valor en el mismo orden en que se insertó.

Sintaxis: 

new Map([it])

Parameter:
it - It is any iterable object whose values are stored as 
     key, value pair,
     If the parameter is not specified then a new map is created 
     is Empty

Returns:
A new Map object

Ahora vamos a crear un Mapa usando el objeto Mapa 

Javascript

// map1 contains
// 1 => 2
// 2 => 3
// 4 -> 5
var map1 = new Map([[1 , 2], [2 ,3 ] ,[4, 5]]);
 
console.log("Map1");
console.log(map1);
 
// map2 contains
// firstname => sumit
// lastname => ghosh
// website => geeksforgeeks
var map2 = new Map([["firstname" ,"sumit"],
        ["lastname", "ghosh"], ["website", "geeksforgeeks"]]);
 
console.log("Map2");
console.log(map2);
 
 
// map3 contains
// Whole number => [1, 2, 3, 4]
// Decimal number => [1.1, 1.2, 1.3, 1.4]
// Negative number => [-1, -2, -3, -4]
var map3 = new Map([["whole numbers", [1 ,2 ,3 ,4]],
            ["Decimal numbers" , [1.1, 1.2, 1.3, 1.4]],
            ["negative numbers", [-1, -2, -3, -4]]]);
 
console.log("Map3");
console.log(map3);
 
 
// map 4 contains
// storing arrays both as key and value
// "first name ", "Last name" => "sumit", "ghosh"
// "friend 1", "sourav" => "friend 2", "gourav"
var map4 = new Map([[["first name", "last name"],
            ["sumit", "ghosh"]],
            [["friend 1", "friend 2"],
            ["sourav","gourav"]]]);
 
console.log("Map4");
console.log(map4);

Producción: 

Output_1_1Ouput_1_2

Propiedades: 

Map.prototype.size – Devuelve el número de elementos o los pares clave-valor en el mapa.

 Métodos:  

1. Map.prototype.set() : agrega la clave y el valor al objeto de mapa. 

Sintaxis: 

map1.set(k, v);

Parameters:
k - Key of the element to be added to the Map
v - value of the element to be added to the Map

Returns:
It returns a Map object

2. Map.prototype.has() : devuelve un valor booleano dependiendo de si la clave especificada está presente o no.

Sintaxis: 

map1.has(k);

Parameters:
k - Key of the element to checked 

Returns:
true if the element with the specified key is present 
or else returns false. 

3. Map.prototype.get() – Devuelve el valor de la clave correspondiente .

Sintaxis: 

map1.get(k);

Parameters:
k - Key, whose value is to be returned

Returns:
The value associated with the key, if it is present 
in Map, otherwise returns undefined

4. Map.prototype.delete() : elimina tanto la clave como un valor del mapa. 

Sintaxis: 

map1.delete(k);

Parameters:
k - Key which is to be deleted from the map 

Returns:
true if the value is found and deleted from 
the map otherwise, it returns false

5. Map.prototype.clear() : elimina todos los elementos del objeto Map.

Sintaxis: 

map1.clear();

Parameters:
No parameters

Returns:
undefined

Usemos todos los métodos descritos anteriormente: 

Ejemplo: 

Javascript

// Using Map.prototype.set(k, v)
// creating an empty map
var map1 = new Map();
 
// adding some elements to the map
map1.set("first name", "sumit");
map1.set("last name", "ghosh");
map1.set("website", "geeksforgeeks")
    .set("friend 1","gourav")
    .set("friend 2","sourav");
 
// map1 contains
// "first name" => "sumit"
// "last name" => "ghosh"
// "website" => "geeksforgeeks"
// "friend 1" => "gourav"
// "friend 2" => "sourav"
console.log(map1);
     
// Using Map.prototype.has(k)
 
// returns true
console.log("map1 has website ? "+
                    map1.has("website"));
 
// return false
console.log("map1 has friend 3 ? " +
                    map1.has("friend 3"));
     
 
// Using Map.prototype.get(k)
 
// returns geeksforgeeks
console.log("get value for key website "+
                    map1.get("website"));
 
// returns undefined
console.log("get value for key friend 3 "+
                    map1.get("friend 3"));
 
// Using Map.prototype.delete(k)
 
// removes key "website" and its value from
// the map
// it prints the value of the key
console.log("delete element with key website "
                    + map1.delete("website"));
     
// as the value is deleted from
// the map hence it returns false
console.log("map1 has website ? "+
                    map1.has("website"));
 
// returns false as this key is not in the list
console.log("delete element with key website " +
                    map1.delete("friend 3"));
 
 
// Using Map.prototype.clear()
// removing all values from map1
map1.clear();
 
// map1 is empty
console.log(map1);

Producción: 

Output_2

6. Map.prototype.entries() : devuelve un objeto iterador que contiene un par  clave/valor para cada elemento presente en el objeto Map.

Sintaxis: 

map1.entries();

Parameters:
No parameters

Returns:
It returns an iterator object 

7. Map.prototype.keys() : devuelve un objeto iterador que contiene todas las claves presentes en el objeto de mapa. 

Sintaxis: 

map1.keys();

Parameters:
No parameter

Returns:
An iterator object 

8. Map.prototype.values() : devuelve un objeto iterador que contiene todos los valores presentes en el objeto de mapa. 

Sintaxis: 

map1.values();

Parameters:
No parameter

Returns: 
An iterator object 

Usemos todos los métodos descritos anteriormente: 

Ejemplo: 

Javascript

// creating an empty map
var map1 = new Map();
 
// adding some elements to the map
map1.set("first name", "sumit");
map1.set("last name", "ghosh");
map1.set("website", "geeksforgeeks")
    .set("friend 1","gourav")
    .set("friend 2","sourav");
 
 
// Using Map.prototype.entries()
 
// getting all the entries of the map
var get_entries = map1.entries();
 
 
// it prints
// ["first name", "sumit"]
// ["last name", "ghosh"]
// ["website", "geeksforgeeks"]
// ["friend 1", "gourav"]
// ["friend 2", "sourav"]
console.log("----------entries---------");
for(var ele of get_entries)
console.log(ele);
 
// Using Map.prototype.keys()
 
// getting all the keys of the map
var get_keys = map1.keys();
 
// it prints
// "first name", "last name",
// "website", "friend 1", "friend 2"
console.log("--------keys----------");
for(var ele of get_keys)
console.log(ele);
 
// Using Map.prototype.values()
 
// getting all the values of the map
var get_values = map1.values();
 
// it prints all the values
// "sumit", "ghosh", "geeksforgeeks"
// "gourav", "sourav"
console.log("----------values------------");
for(var ele of get_values)
console.log(ele);

Producción: 

Output_3

9. Map.prototype.forEach() : ejecuta la función de devolución de llamada una vez para cada par clave/valor en el mapa, en el orden de inserción. 

Sintaxis: 

map1.forEach(callback,  [thisArgument]);

Parameters:
callback - It is a function that is to be executed for each element of the Map.
thisargument - Value to be used as this when executing the callback.

Returns:
undefined

La función de devolución de llamada se proporciona con tres parámetros de la siguiente manera: 

  • la clave del elemento
  • el valor del elemento
  • el objeto Mapa a recorrer

Ejemplo:

Javascript

// using Map.prototype.forEach()
// creating an empty map
var map1 = new Map();
   
// adding some elements to the map 
map1.set("first name", "sumit");
map1.set("last name", "ghosh");
map1.set("website", "geeksforgeeks")
    .set("friend 1", "gourav")
    .set("friend 2", "sourav");
   
// Declaring a call back function
// we are using only one parameter value
// so it will ignore other two .
function printOne(values) 
{
   console.log(values);
}
   
// It prints value of all the element 
// of the set
console.log("-----one parameter-----");
map1.forEach(printOne);
   
// Declaring a call back function
// we are using two parameter value
// so it will ignore last one 
function printTwo(values, key) 
{
   console.log(key + "  " + values);
}
   
// As key and values are same in set
// so it will print values twice
console.log("-----two parameter-----");
map1.forEach(printTwo);
   
// Declaring a call back function
// we are using all three parameter value
function printThree(values, key, map) 
{
   // it will print key and value 
   // and the set object
   console.log(key + "  " + values);
   console.log(map);
}
   
// It prints key and value of each 
// element and the entire Map object
console.log("-----three parameter-----");
map1.forEach(printThree);

Producción:

Output_4_1Output_4_2

Nota: En el ejemplo anterior, usamos una función de devolución de llamada simple que solo imprime un elemento en la consola, puede diseñarse para realizar cualquier operación compleja según los requisitos.

10. Map.prototype[@@iterator]() : devuelve una función de iterador de mapa que es el método de entradas() del objeto de mapa de forma predeterminada. 

Sintaxis: 

map1[Symbol.iterator]

Parameters:
No parameters

Returns:
Returns an map iterator object and it is 
entries() by default

Ejemplo: 

Javascript

// using Map.prototype[@@iterator]()
// creating an empty map
var map1 = new Map();
 
// adding some elements to the map
map1.set("first name", "sumit");
map1.set("last name", "ghosh");
map1.set("website", "geeksforgeeks")
    .set("friend 1", "gourav")
    .set("friend 2", "sourav");
 
// By default this method returns the
// same iterator object return by entries methods
var getit = map1[Symbol.iterator]();
 
// it prints
// ["first name", "sumit"]
// ["last name", "ghosh"]
// ["website", "geeksforgeeks"]
// ["friend 1", "gourav"]
// ["friend 2", "sourav"]
for(var elem of getit)
    console.log(elem);

Producción: 

Output_5

11. Mapa utilizado para iterar sobre arreglos

Sintaxis:

arr.map(function(value,index){})

Parameters: 
value = array element
           index = index of array
           
Return:
Modified valueo of elements

Ejemplo:

Javascript

let arr = [1,2,3,4,5]
 
let arr1 = [];
 
//iterate over array and store in arr1
arr1 = arr.map((value,idx)=>{
    console.log("value "+value,"idx "+idx);
    return value*2;
})
 
console.log();
//original array
console.log("arr= "+arr);
//modified array
console.log("arr1= "+arr1);

Producción:

 

Nota: – Podemos crear una definición de usuario iterable en lugar de usar la predeterminada.

Referencia: 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map 

JavaScript es mejor conocido por el desarrollo de páginas web, pero también se usa en una variedad de entornos que no son de navegador. Puede aprender JavaScript desde cero siguiendo este tutorial de JavaScript y ejemplos de JavaScript .

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *