From 52ccdf1f0a1cee3f0659ac78e81c79dae152399b Mon Sep 17 00:00:00 2001 From: MDN Date: Wed, 23 Jun 2021 00:34:06 +0000 Subject: [CRON] sync translated content --- .../reference/global_objects/map/index.html | 225 --------------------- 1 file changed, 225 deletions(-) delete mode 100644 files/pt-br/web/javascript/reference/global_objects/map/index.html (limited to 'files/pt-br/web/javascript/reference/global_objects/map/index.html') diff --git a/files/pt-br/web/javascript/reference/global_objects/map/index.html b/files/pt-br/web/javascript/reference/global_objects/map/index.html deleted file mode 100644 index 80ec04af62..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/map/index.html +++ /dev/null @@ -1,225 +0,0 @@ ---- -title: Map -slug: Web/JavaScript/Reference/Global_Objects/Map -tags: - - ECMAScript 2015 - - JavaScript - - Map - - Mapa -translation_of: Web/JavaScript/Reference/Global_Objects/Map ---- -
{{JSRef}}
- -

O objeto Map é um mapa simples de chave/valor. Qualquer valor (objeto e {{Glossary("Primitive", "valores primitivos")}}) pode ser usado como uma chave ou um valor.

- -

Sintaxe

- -
new Map([iterable])
-
- -

Parâmetros

- -
-
iterable
-
-

Iterable é um Array ou outro objeto iterável cujos elementos são pares de chave-valor (2-element Arrays). Cada par de chave-valor é adicionado ao novo Map. null é tratado como undefined.

-
-
- -

Descrição

- -

Um objeto Map itera seus elementos em ordem de inserção — um loop {{jsxref("Statements/for...of", "for...of")}} retorna um array de [chave, valor] para cada iteração.

- -

Deve-se notar que um Map que é um mapa de um objeto, especialmente, um dicionário de dicionários somente irá mapear apenas para a ordem de inserção -- que é aleatória e não ordenada.

- -

Igualidade de valores

- -

A igualdade das chaves é baseada no algoritmo "SameValueZero" (mesmo valor): NaN é considerado igual à NaN (mesmo que NaN !== NaN) e todos os outros valores são considerados iguals de acordo com a semantica do operador ===. Em versões anteriores do rascunho ECMAScript 2015 draft -0 and +0 eram considerados diferentes (mesmo que -0 === +0), isto foi trocado em versões posteriores e foi aplicado no Gecko 29 {{geckoRelease("29")}} ({{bug("952870")}}) e em uma build recente nightly do Chrome.

- -

Objetos e mapas comparados

- -

{{jsxref("Object", "Objects")}} são similares a Maps onde ambos deixam adicionar chaves para valores, recuperar estes valores, apagar chaves, e detectar quando algo foi adicionado em uma chave. Por causa disso (e porque não existem alternativas pré-construidas), Objects historicamente foram usados como Maps; no entanto, existem diferenças importantes entre Objects e Maps que fazem o uso do Map melhor:

- - - -

Isto não significa que você deve usar Maps em todo lugar, objetos ainda serão usados na maioria dos casos. Instancias de Map são úteis somente para coleções, e você deve considerar adaptar seu codigo onde você usou objetos para isto anteriormente. Objects devem ser usados como registros, com campos e métodos.
- Se você não tem certeza qual usar, pergunte-se as seguintes questões:

- - - -

Se você respondeu "sim" em qualquer uma dessas questões, é um sinal de que você quer utilizar um  Map. Se ao invés disto você tem um numero fixo de keys, trabalhe eles individualmente, e faça diferenciação entre o uso deles, você quer um objeto.

- -

Propriedades

- -
-
Map.length
-
O tamanho do mapa é 0.
-
{{jsxref("Map.@@species", "get Map[@@species]")}}
-
A função construtora que é usada para criar objetos derivados.
-
{{jsxref("Map.prototype")}}
-
Representa o prototype para o construtor de Map. Permite a adição de propriedades para todos os objetos Map.
-
- -

Instâncias de Map

- -

Todas as instancias de Map herdam de {{jsxref("Map.prototype")}}.

- -

Propriedades

- -

{{page('pt-BR/Web/JavaScript/Reference/Global_Objects/Map/prototype','Properties')}}

- -

Métodos

- -

{{page('pt-BR/Web/JavaScript/Reference/Global_Objects/Map/prototype','Methods')}}

- -

Exemplos

- -

Usando o objeto Map

- -
var myMap = new Map();
-
-var keyString = "uma string",
-    keyObj = {},
-    keyFunc = function () {};
-
-// configurando os valores
-myMap.set(keyString, "valor associado com 'uma string'");
-myMap.set(keyObj, "valor associado com keyObj");
-myMap.set(keyFunc, "valor associado com keyFunc");
-
-myMap.size; // 3
-
-// obtendo os valores
-myMap.get(keyString);    // "valor associado com 'uma string'"
-myMap.get(keyObj);       // "valor associado com keyObj"
-myMap.get(keyFunc);      // "valor associado com keyFunc"
-
-myMap.get("uma string"); // "valor associado com 'uma string'"
-                         // pois keyString === 'uma string'
-myMap.get({});           // undefined, pois keyObj !== {}
-myMap.get(function() {}) // undefined, pois keyFunc !== function () {}
-
- -

Usando NaN como Map keys

- -

NaN pode também ser usado como key. Mesmo que NaN não seja igual a ele mesmo (NaN !== NaN)  é true, o seguinte exemplo funciona, porquê NaNs são indistinguíveis uma para o outro:

- -
var myMap = new Map();
-myMap.set(NaN, "not a number");
-
-myMap.get(NaN); // "not a number"
-
-var otherNaN = Number("foo");
-myMap.get(otherNaN); // "not a number"
-
- -

Iterando Maps com for..of

- -

Maps podem ser iterados usando um for..of :

- -
var myMap = new Map();
-myMap.set(0, "zero");
-myMap.set(1, "um");
-for (var [key, value] of myMap) {
-  console.log(key + " = " + value);
-}
-// 0 = zero
-// 1 = um
-
-for (var key of myMap.keys()) {
-  console.log(key);
-}
-// 0
-// 1
-
-for (var value of myMap.values()) {
-  console.log(value);
-}
-// zero
-// um
-
-for (var [key, value] of myMap.entries()) {
-  console.log(key + " = " + value);
-}
-// 0 = zero
-// 1 = um
-
- -

Iterando Maps com forEach()

- -

Maps podem ser iterados usando um forEach():

- -
myMap.forEach(function(value, key) {
-  console.log(key + " = " + value);
-}, myMap)
-// Mostrará 2 logs; o primeiro com "0 = zero" e o segundo com "1 = um"
-
- -

Relação com objetos Array

- -
var kvArray = [["key1", "value1"], ["key2", "value2"]];
-
-// Utiliza o construtor padrão de Map para converter um Array de 2 dimensões de chave-valor Array em um mapa
-var myMap = new Map(kvArray);
-
-myMap.get("key1"); // retorna "value1"
-
-// Utiliza Array.from para converter um mapa em um Array de 2 dimensões de chave-valor
-console.log(Array.from(myMap)) // Mostrará exatamente o mesmo Array que kvArray
-
-// Uma forma mais sucinta de realizar a mesma conversão com o operador spread
-console.log([...myMap]);
-
-// Ou usa o operador spread nas chaves ou valores para o iterador pegar
-// um array com somente as chaves ou valores
-console.log([...myMap.keys()]); // Mostrará ["key1", "key2"]
-
- -

Especificações

- - - - - - - - - - - - - - - - - - - -
EspecificaçãoStatusComentário
{{SpecName('ES6', '#sec-map-objects', 'Map')}}{{Spec2('ES6')}}Definição inicial.
{{SpecName('ESDraft', '#sec-map-objects', 'Map')}}{{Spec2('ESDraft')}}
- -

Compatibilidade com os navegadores

- -

{{Compat("javascript.builtins.Map")}}

- -

[1] Começando com Chrome 31, a feature ficou disponível sob modificação de configurações. Em chrome://flags, ative a entrada activate “Enable Experimental JavaScript”.

- -

Ver também

- - -- cgit v1.2.3-54-g00ecf