From aa7be82432021056bca58ebe1e66bdcb8a4c3a0f Mon Sep 17 00:00:00 2001 From: seeker8 Date: Sun, 18 Aug 2024 11:56:23 -0400 Subject: [PATCH] [es] finish Map localization --- .../reference/global_objects/map/index.md | 177 +++++++++--------- 1 file changed, 86 insertions(+), 91 deletions(-) diff --git a/files/es/web/javascript/reference/global_objects/map/index.md b/files/es/web/javascript/reference/global_objects/map/index.md index e8e1e33d0ba7d5..4f9990e5d5275e 100644 --- a/files/es/web/javascript/reference/global_objects/map/index.md +++ b/files/es/web/javascript/reference/global_objects/map/index.md @@ -14,17 +14,17 @@ Cualquier valor (ambos objetos y {{Glossary("Primitive", "valores primitivos")}} ## Descripción -Los objetos `Map` son colecciones de tuplas de llave-valor. Una llave en `Map` **puede aparecer solo una vez**; es única en la colección de `Map`. Un objeto `Map` es iterado por sus tuplas de llave-valor —un bucle {{jsxref("Statements/for...of", "for...of")}} regresa un arreglo de `[llave, valor]` por cada iteración. La iteración sucede en _orden de inserción_, la cual corresponde al orden en el que cada par llave-valor fue incertada inicialmente en el map por el método [`set()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/set) (eso es, si no había una llave con el mismo valor en el map, cuando `set()` fué llamado). +Los objetos `Map` son colecciones de tuplas tipo llave-valor. Una llave en `Map` **puede aparecer solo una vez**; es única en la colección de `Map`. Un objeto `Map` es iterado por sus tuplas llave-valor —un bucle {{jsxref("Statements/for...of", "for...of")}} regresa un arreglo de `[llave, valor]` por cada iteración. La iteración sucede en _orden de inserción_, la cual corresponde al orden en el que cada tupla llave-valor fue incertada inicialmente en el map por el método [`set()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/set) (eso es, si no había una llave con el mismo valor en el map, cuando `set()` fué llamado). La especificación requiere que los maps sean implementados "que, en promedio, proporcione tiempos de acceso que sean sublineales al numero de elementos en la colección". Por lo tanto, podría ser representado internamente como una tabla hash (con una busqueda O(1)), un árbol de búsqueda (con una busqueda de O(log(N))). ### Igualdad de llaves -La igualdad de valores se basa en el algoritmo [SameValueZero](/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#same-value-zero_equality). (It used to use [SameValue](/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#same-value_equality_using_object.is), which treated `0` and `-0` as different. Check [browser compatibility](#browser_compatibility).) Lo que significa que {{jsxref("NaN")}} es conciderado lo mismo que `NaN` (a pesar de que `NaN !== NaN`) y todos los otros valores son conciderados iguales, de acuerdo a la semantica del operador `===`. +La igualdad de valores se basa en el algoritmo [Igualdad SameValueZero](/es/docs/Web/JavaScript/Equality_comparisons_and_sameness#igualdad_same-value-zero). (Se solía usar [SameValue](/es/docs/Web/JavaScript/Equality_comparisons_and_sameness#same-value_equality_using_object.is), el cual trataba `0` y `-0` como diferentes. Revise [compatibilidad con navegadores](#compatibilidad_de_navegadores).) Lo que significa que {{jsxref("NaN")}} es conciderado lo mismo que `NaN` (a pesar de que `NaN !== NaN`) y todos los otros valores son conciderados iguales, de acuerdo a la semantica del operador `===`. ### Objects vs. Maps -{{jsxref("Object")}} es similar a `Map`—ambos te permiten asignar llaves a valores, recuperar esos valores, borrar llaves, y detectar si hay algo guardado en una llave. Por esta razón (y porque no había alternativas incorporadas), historicamente `Object` se ha usado como `Map`. +{{jsxref("Object")}} es similar a `Map`—ambos te permiten asignar llaves a valores, recuperar esos valores, borrar llaves, y detectar si hay algo guardado en una llave. Por esta razón (y porque no había alternativas incorporadas), históricamente `Object` se ha usado como `Map`. Sin embargo, hay diferencias importantes que hacen que se prefiera a `Map` en algunos casos: @@ -40,7 +40,7 @@ Sin embargo, hay diferencias importantes que hacen que se prefiera a `Map` en al Accidentes con llaves - Un objeto Map no tiene llaves por defecto. Sólo contiene lo que explicitamente se pone en el. + Un objeto Map no tiene llaves por defecto. Sólo contiene lo que explicitamente se pone en él.

@@ -88,44 +88,44 @@ Sin embargo, hay diferencias importantes que hacen que se prefiera a `Map` en al

- A pesar de que ahora las llaves de un objeto comun Object estan ordenadas, esto no siempre fue el caso, y el orden es complejo. Como resultado es mejor no confiar en el orden de las propiedades. + A pesar de que ahora las llaves de un objeto común Object están ordenadas, esto no siempre fué el caso, y el orden es complejo. Como resultado es mejor no confiar en el orden de las propiedades.

- El orden en ECMAScript 2015 fue definido inicialmente para las propiedades propias del objeto; ECMAScript 2020 define un orden tambien para propiedades heredadas. Pero notece que ningun mecanismo unico itera todas las propiedades de un objeto; de los varios mecanismos, cada uno inluye un subconjunto diferente de propiedades; ({{jsxref("Statements/for...in", "for-in")}} - incluye solo propiedades que la llave es una cadena de texto enumerable; - {{jsxref("Object.keys")}} incluye solo propiedades propias, enumerables, + El orden en ECMAScript 2015 fué definido inicialmente para las propiedades propias del objeto; ECMAScript 2020 define un orden también para propiedades heredadas. Pero notece que ningún mecanismo único itera todas las propiedades de un objeto; de los varios mecanismos, cada uno inluye un subconjunto diferente de propiedades; ({{jsxref("Statements/for...in", "for-in")}} + incluye sólo propiedades donde la llave es una cadena de texto enumerable; + {{jsxref("Object.keys")}} incluye sólo propiedades propias, enumerables, y las llaves son cadenas de texto; {{jsxref("Object.getOwnPropertyNames")}} incluye propias, llaves de cadena de texto incluso si no son enumerables; - {{jsxref("Object.getOwnPropertySymbols")}} hace lo mismo solo para propiedades que su llave es un Symbol etc.) + {{jsxref("Object.getOwnPropertySymbols")}} hace lo mismo sólo para propiedades que su llave es un Symbol etc.)

-

Tamano

+

Tamaño

- El numero de elementos en un Map se obtiene facilmente de su propiedad + El número de elementos en un Map se obtiene fácilmente de su propiedad {{jsxref("Map.prototype.size", "size")}}. - Determinar el numero de elementos en un Objeto es mas indirecto y menos eficiente. Una forma comun de hacerlo es atraves de la propiedad {{jsxref("Array/length", "length")}} del arreglo que regresa la funcion {{jsxref("Object.keys()")}}. + Determinar el número de elementos en un Objeto es mas indirecto y menos eficiente. Una forma común de hacerlo es através de la propiedad {{jsxref("Array/length", "length")}} del arreglo que regresa la función {{jsxref("Object.keys()")}}. - Iteracion + Iteración Un Map es un - iterable, asi que puede ser iterado directamente. + >, así que puede ser iterado directamente.

Object no implementa un protocolo de iteracionprotocolo de iteración, por eso los objetos no son directamente iterables usando la sentencia de JavaScript - for...of.

@@ -133,7 +133,7 @@ Sin embargo, hay diferencias importantes que hacen que se prefiera a `Map` en al

Nota: