Um mapa contém pares de valores-chave onde as chaves podem ser de qualquer tipo de dados.
Um mapa lembra a ordem de inserção original das chaves.
Cria um novo mapa
Define o valor de uma chave em um mapa
Obtém o valor de uma chave em um mapa
Remove um elemento Map especificado pela chave
Retorna verdadeiro se existir uma chave em um mapa
Chama uma função para cada par chave/valor em um mapa
Retorna um iterador com os pares [chave, valor] em um mapa
Retorna o número de elementos em um Mapa
Você pode criar um mapa JavaScript:
Passando um array para new Map()
Crie um mapa e use Map.set()
new Map()
Você pode criar um Mapa passando um Array para o construtor new Map()
:
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Creating a Map from an Array:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
set()
Você pode adicionar elementos a um mapa com o método set()
:
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.set():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map();
// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
O método set()
também pode ser usado para alterar valores existentes do mapa:
fruits.set("apples", 200);
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.set():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
fruits.set("apples", 200);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
get()
O método get()
obtém o valor de uma chave em um mapa:
fruits.get("apples"); // Returns 500
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.get():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
tamanho
A propriedade size
retorna o número de elementos em um mapa:
fruits.size;
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Using Map.size:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.size;
</script>
</body>
</html>
delete()
O método delete()
remove um elemento Map:
fruits.delete("apples");
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Deleting Map elements:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
// Delete an Element
fruits.delete("apples");
document.getElementById("demo").innerHTML = fruits.size;
</script>
</body>
</html>
has()
O método has()
retorna verdadeiro se existir uma chave em um mapa:
fruits.has("apples");
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Using Map.has():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.has("apples");
</script>
</body>
</html>
fruits.delete("apples");
fruits.has("apples");
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Maps</h2>
<p>Using Map.has():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
// Delete an Element
fruits.delete("apples");
document.getElementById("demo").innerHTML = fruits.has("apples");
</script>
</body>
</html>
Iterável: não diretamente iterável
Tamanho: não possui uma propriedade de tamanho
Tipos de chave: As chaves devem ser Strings (ou Símbolos)
Ordem das chaves: As chaves não estão bem ordenadas
Padrões: Tem chaves padrão
Iterável: diretamente iterável
Tamanho: Tenha uma propriedade de tamanho
Tipos de chave: As chaves podem ser qualquer tipo de dados
Ordem das chaves: As chaves são ordenadas por inserção
Padrões: Não possuem chaves padrão
forEach()
O método forEach()
chama uma função para cada par chave/valor em um mapa:
// List all entries
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value;
})
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.forEach():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
let text = "";
fruits.forEach (function(value, key) {
text += key + ' = ' + value + "<br>"
})
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
entries()
O método entries()
retorna um objeto iterador com a [chave, valores] em um mapa:
// List all entries
let text = "";
for (const x of fruits.entries()) {
text += x;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Using Map.entries():</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
let text = "";
for (const x of fruits.entries()) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Os mapas JavaScript são suportados em todos os navegadores, exceto no Internet Explorer:
Chrome | Edge | Firefox | Safari | Opera |