Skip to content

Commit

Permalink
Merge branch 'main' into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
hoshito authored Aug 22, 2024
2 parents 99e2e57 + 8044c29 commit 9f0b523
Show file tree
Hide file tree
Showing 70 changed files with 1,231 additions and 303 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: Map.prototype.delete()
slug: Web/JavaScript/Reference/Global_Objects/Map/delete
l10n:
sourceCommit: 88d71e500938fa8ca969fe4fe3c80a5abe23d767
---

{{JSRef}}

El método **`delete()`** de las instancias {{jsxref("Map")}} remueve el elemento especificado de este _map_ utilizando la llave del elemento que se quiere remover.

{{EmbedInteractiveExample("pages/js/map-prototype-delete.html")}}

## Sintaxis

```js-nolint
mapInstance.delete(key)
```

### Parámetros

- `key`
- : La llave de el elemento que se va a remover del objeto `Map`.

### Valor devuelto

`true` si un elemento en el objeto `Map` existía y fué removido, o `false` si el elemento no existe.

## Ejemplos

### Usando delete()

```js
const myMap = new Map();
myMap.set("bar", "foo");

console.log(myMap.delete("bar")); // Regresa true. Removido exitosamente.
console.log(myMap.has("bar")); // Regresa false. El elemento "bar" ya no esta presente.
```

## Especificaciones

{{Specifications}}

## Compatibilidad con navegadores

{{Compat}}

## Véase también

- {{jsxref("Map")}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: Map.prototype.entries()
slug: Web/JavaScript/Reference/Global_Objects/Map/entries
l10n:
sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c
---

{{JSRef}}

El método **`entries()`** de las instancias {{jsxref("Map")}} regresa un nuevo objeto _[iterador de mapa](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator)_ que contiene las tuplas `[llave, valor]` para cada elemento en este _map_ en orden de inserción.

{{EmbedInteractiveExample("pages/js/map-prototype-entries.html")}}

## Sintaxis

```js-nolint
entries()
```

### Parámetros

Ningúno.

### Valor devuelto

Un nuevo [objeto de tipo iterator iterable](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator).

## Ejemplos

### Usando entries()

```js
const myMap = new Map();
myMap.set("0", "foo");
myMap.set(1, "bar");
myMap.set({}, "baz");

const mapIter = myMap.entries();

console.log(mapIter.next().value); // ["0", "foo"]
console.log(mapIter.next().value); // [1, "bar"]
console.log(mapIter.next().value); // [Object, "baz"]
```

## Especificaciones

{{Specifications}}

## Compatibilidad con navegadores

{{Compat}}

## Véase también

- {{jsxref("Map.prototype.keys()")}}
- {{jsxref("Map.prototype.values()")}}
110 changes: 110 additions & 0 deletions files/es/web/javascript/reference/global_objects/map/groupby/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
title: Map.groupBy()
slug: Web/JavaScript/Reference/Global_Objects/Map/groupBy
l10n:
sourceCommit: 8421c0cd94fa5aa237c833ac6d24885edbc7d721
---

{{JSRef}}

> [!NOTE]
> En algunas versiones de algunos navegadores, este método fué implementado como el método `Array.prototype.groupToMap()`. Debido a problemas de compatibilidad web, ahora es implementado como un método estático. Revise la [tabla de compatibilidad con navegadores](#compatibilidad_con_navegadores) para más detalles.
El método estático **`Map.groupBy()`** agrupa los elementos de un iterable, utilizando los valores regresados por la función provista. El objeto {{jsxref("Map")}} regresado utiliza los valores únicos de la función de prueba como llaves, los cuales pueden utilizarse para obtener el arreglo de elementos en cada grupo.

El método es útil principalmente cuando se quiere agrupar elementos que están asociados con un objeto, y particularmente cuando el objeto puede cambiar con el tiempo. Si el objeto es invariante, podrías en su lugar representarlo utilizando una cadena de caracteres _string_, y agrupando los elementos con {{jsxref("Object.groupBy()")}}.

{{EmbedInteractiveExample("pages/js/map-groupby.html", "taller")}}

## Sintaxis

```js-nolint
Map.groupBy(items, callbackFn)
```

### Parámetros

- `items`
- : Un [iterable](/es/docs/Web/JavaScript/Reference/Iteration_protocols#el_protocolo_iterador) (así como un {{jsxref("Array")}}) cuyos elementos serán agrupados.
- `callbackFn`
- : Una función que se ejecuta por cada elemento en el iterable. Debe regresar un valor ({{Glossary("object")}} o un {{Glossary("primitive")}}) indicando el grupo del elemento actual. La función es llamada con los siguientes argumentos:
- `element`
- : El elemento actual que está siendo procesado.
- `index`
- : El índice del elemento actual que esta siendo procesado.

### Valor regresado

Un objeto {{jsxref("Map")}} con llaves para cada grupo, cada llave asignada a un arreglo que contiene los elementos del grupo asociado.

## Descripción

`Map.groupBy()` llama a la función de devolución de llamada `callbackFn` pasada como parámetro, una vez por cada elemento en el iterable. La función de devolución de llamada debe regresar un valor indicando el grupo del elemento asociado. Los valores regresados por la `callbackFn` son utilizados como llaves para el {{jsxref("Map")}} regresado por `Map.groupBy()`. Cada llave tiene asociado un arreglo que contiene todos los elementos para los cuales la función de devolución de llamada regresó el mismo valor.

Los elementos en el objeto {{jsxref("Map")}} regresado por la función y en el iterable original, son los mismos (sin {{Glossary("deep copy", "copias profundas")}}). Al cambiar la estructura interna de los elementos, esta se vera reflejada en ambos, el iterable original y el {{jsxref("Map")}} regresado por la función.

Este método es util cuando necesitas agrupar información que está relacionada a un objeto en particular y que potencialmente puede cambiar con el tiempo. Esto es debido a que, incluseo si el objeto es modificado, continuará funcionando como llave para el objeto `Map` regresado por la función. Si en su lugar creas una representación _string_ para el objeto y la utilizas como la llave para agrupar en {{jsxref("Object.groupBy()")}}, debes mantener el mapeo entre el objeto original y su representacion de acuerdo a como el objeto cambia.

> [!NOTE]
> Para accesar los grupos en el objeto `Map` regresado por la función, debes utilizar el mismo objeto que fué usado como llave en el `Map` (a pesar de que puedes modificar sus propiedades). No puedes usar otro objeto que de casulaidad tiene el mismo nombre y las mismas propiedades.
`Map.groupBy` no lee el valor de `this`. Puede ser llamado en cualquier objeto y regresará una nueva instancia de {{jsxref("Map")}}.

## Ejemplos

### Utilizando Map.groupBy()

Primero definimos un arreglo que contenga objetos que representen un inventario de diferentes alimentos. Cada alimento tiene un `type` y un `quantity`.

```js
const inventory = [
{ name: "asparagus", type: "vegetables", quantity: 9 },
{ name: "bananas", type: "fruit", quantity: 5 },
{ name: "goat", type: "meat", quantity: 23 },
{ name: "cherries", type: "fruit", quantity: 12 },
{ name: "fish", type: "meat", quantity: 22 },
];
```

El código de abajo utiliza `Map.groupBy()` con una función flecha que regresa las llaves de objeto llamadas `restock` o `sufficient`, dependiendo de si la propiedad del elemento es `quantity < 6`. El objeto `result` que regresa, es un `Map` así que necesitamos llamar `get()` con la llave para obtener el arreglo.

```js
const restock = { restock: true };
const sufficient = { restock: false };
const result = Map.groupBy(inventory, ({ quantity }) =>
quantity < 6 ? restock : sufficient,
);
console.log(result.get(restock));
// [{ name: "bananas", type: "fruit", quantity: 5 }]
```

Note que el argumento `{ quantity }` de la función, es un ejemplo básico de la [sintaxis de destructuración de objetos pasados como parámetros de función](/es/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#desempacar_campos_de_objetos_pasados_como_parámetro_de_función). Esto desempaca la propiedad `quantity` del objeto pasado como parámetro, y lo asigna a la variable llamada `quantity` en el cuerpo de la función. Esta es una forma muy concisa de accesar los valores relevantes de elementos, dentro de una función.

La llave de un `Map` puede ser modificada y aún usarse. Sin embargo no puedes recrear la llave y aún usarla. Por esa razón es importante que cualquiera que necesite usar el _map_ mantenga una referencia de sus llaves.

```js
// La llave puede ser modificada y aún usarse
restock["fast"] = true;
console.log(result.get(restock));
// [{ name: "bananas", type: "fruit", quantity: 5 }]

// Una nueva llave no puede ser usada, incluso si tiene la misma estructura!
const restock2 = { restock: true };
console.log(result.get(restock2)); // undefined
```

## Especificaciones

{{Specifications}}

## Compatibilidad con navegadores

{{Compat}}

## Véase también

- [Polyfill de `Map.groupBy` en `core-js`](https://github.com/zloirock/core-js#array-grouping)
- Guía de [Colleciones indexadas](/es/docs/Web/JavaScript/Guide/Indexed_collections)
- {{jsxref("Array.prototype.reduce()")}}
- {{jsxref("Map/Map", "Map()")}}
- {{jsxref("Object.groupBy()")}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: Map[Symbol.species]
slug: Web/JavaScript/Reference/Global_Objects/Map/Symbol.species
l10n:
sourceCommit: 8421c0cd94fa5aa237c833ac6d24885edbc7d721
---

{{JSRef}}

La propiedad estática de acceso **`Map[Symbol.species]`** es una propiedad de acceso no utilizada que especifica como hacer copias de objetos `Map`.

## Sintaxis

```js-nolint
Map[Symbol.species]
```

### Valor devuelto

El valor de el constructor (`this`) en el cual se llamó `get [Symbol.species]`. El valor devuelto es usado para construir copias de instancias de `Map`.

## Descripción

La propiedad de acceso `[Symbol.species]` regresa el constructor por defecto para los objetos `Map`. Los constructores de las subclases pueden sobreescribirla para cambiar la asignación del constructor.

> [!NOTE]
> Esta es una propiedad que actualmente no es utilizada por ningúno de los métodos de `Map`.
## Ejemplos

### Species en objetos ordinarios

La propiedad `[Symbol.species]` regresa la función constructora por defecto, la cual es el constructor `Map` para `Map`.

```js
Map[Symbol.species]; // function Map()
```

### Species en objetos derivados

En una instancia de una subclase personalizada `Map`, como lo es `MyMap`, la propiedad _species_ de `MyMap` es el constructor de `MyMap`. Sin embargo, podrías desear sobreescribirla para regresar objetos del objeto padre `Map` en los métodos de tu clase derivada:

```js
class MyMap extends Map {
// Sobrescribir species de MyMap en el constructor del Map padre
static get [Symbol.species]() {
return Map;
}
}
```

## Especificaciones

{{Specifications}}

## Compatibilidad con navegadores

{{Compat}}

## Véase también

- {{jsxref("Map")}}
- {{jsxref("Symbol.species")}}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Express の最初の記事では「Node って何だろう?」、「Express

## Node の紹介

[Node](https://nodejs.org/)(正式には _Node.js_)はオープンソースのクロスプラットフォーム、実行環境で、開発者はあらゆるサーバーサイドのツールやアプリケーションを [JavaScript](/ja/docs/Glossary/JavaScript) で作成することができます。この実行環境はブラウザーコンテキスト外での使用 (すなわち、コンピューターまたはサーバー OS 上での直接実行) を目的としています。そのため、クライアントサイドではブラウザー固有の JavaScript API が省略され、HTTP やファイルシステムライブラリーを含む従来の OS API がサポートされます。
[Node](https://nodejs.org/)(正式には _Node.js_)はオープンソースのクロスプラットフォーム、実行環境で、開発者はあらゆるサーバーサイドのツールやアプリケーションを [JavaScript](/ja/docs/Glossary/JavaScript) で作成することができます。この実行環境は閲覧コンテキスト外での使用 (すなわち、コンピューターまたはサーバー OS 上での直接実行) を目的としています。そのため、クライアントサイドではブラウザー固有の JavaScript API が省略され、HTTP やファイルシステムライブラリーを含む従来の OS API がサポートされます。

ウェブサーバー開発の観点から Node には多くの利点があります。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ slug: Mozilla/Add-ons/WebExtensions/API/webNavigation
- {{WebExtAPIRef("webNavigation.onReferenceFragmentUpdated", "onReferenceFragmentUpdated")}} はページの [fragment identifier](https://en.wikipedia.org/wiki/Fragment_identifier) が変更された場合に発火します。
- {{WebExtAPIRef("webNavigation.onErrorOccurred", "onErrorOccurred")}} はあらゆる場所で発火します。

それぞれのナビゲーションは特定のブラウザーフレーム内の URL の遷移です。ブラウザーフレームはタブ ID とフレーム ID で識別されます。フレームはタブ内の再上位のブラウジングコンテキストである場合や[iframe](/ja/docs/Web/HTML/Element/iframe) として実装されたネストされたブラウジングコンテキストである場合があります
それぞれのナビゲーションは特定のブラウザーフレーム内の URL の遷移です。ブラウザーフレームはタブ ID とフレーム ID で識別されます。フレームはタブ内の再上位の閲覧コンテキストである場合や[iframe](/ja/docs/Web/HTML/Element/iframe) として実装されたネストされた閲覧コンテキストである場合があります

それぞれのイベントの `addListener()` の呼び出しはオプションの filter パラメーターを受け入れます。filter は 1 つ以上の URL パターンを指定し、イベントはターゲット URL がパターンにマッチしたナビゲーションの時だけに発火します。

Expand Down
2 changes: 1 addition & 1 deletion files/ja/mozilla/firefox/releases/101/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ slug: Mozilla/Firefox/Releases/101

- イベントをグローバルにサブスクライブするコマンド ([`session.subscribe`](https://w3c.github.io/webdriver-bidi/#command-session-subscribe)) およびサブスクライブを解除するコマンド ([`session.unsubscribe`](https://w3c.github.io/webdriver-bidi/#command-session-unsubscribe)) の部分的な実装と、WebDriver クラシックを使用しないときに WebDriver BiDi セッションを直接作成する機能 ([`session.new`](https://w3c.github.io/webdriver-bidi/#command-session-new)) を含む、[`session` モジュール](https://w3c.github.io/webdriver-bidi/#module-session) を追加しました。

- 新しいタブやウィンドウを開くコマンド ([`browsingContext.create`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-create)) や閉じるコマンド ([`browsingContext.close`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-close))、開いているブラウジングコンテキストを取得するコマンド ([`browsingContext.getTree`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-getTree))、ブラウジングコンテキスト内でナビゲーションするコマンド ([`browsingContext.navigate`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-navigate)) を含む [`browsingContext` モジュール](https://w3c.github.io/webdriver-bidi/#module-browsingContext) を追加しました。これらは、ブラウジングコンテキストが作成されたときのイベント ([`browsingContext.contextCreated`](https://w3c.github.io/webdriver-bidi/#event-browsingContext-contextCreated)) もサポートします。
- 新しいタブやウィンドウを開くコマンド ([`browsingContext.create`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-create)) や閉じるコマンド ([`browsingContext.close`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-close))、開いている閲覧コンテキストを取得するコマンド ([`browsingContext.getTree`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-getTree))、閲覧コンテキスト内でナビゲーションするコマンド ([`browsingContext.navigate`](https://w3c.github.io/webdriver-bidi/#command-browsingContext-navigate)) を含む [`browsingContext` モジュール](https://w3c.github.io/webdriver-bidi/#module-browsingContext) を追加しました。これらは、閲覧コンテキストが作成されたときのイベント ([`browsingContext.contextCreated`](https://w3c.github.io/webdriver-bidi/#event-browsingContext-contextCreated)) もサポートします。

- ログのイベント ([`log.entryAdded`](https://w3c.github.io/webdriver-bidi/#event-log-entryAdded)) をサポートする [`log` モジュール](https://w3c.github.io/webdriver-bidi/#module-log) を追加しました。

Expand Down
2 changes: 1 addition & 1 deletion files/ja/mozilla/firefox/releases/104/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ slug: Mozilla/Firefox/Releases/104
#### WebDriver BiDi

- `log.entryAdded` イベントで `source` をサポートしました ([Firefox バグ 1770792](https://bugzil.la/1770792))。
- 新たに開いたブラウジングコンテキストについて`browsingContext.contextCreated` イベントに送信する `url``about:blank` に更新しました ([Firefox バグ 1775141](https://bugzil.la/1775141))。
- 新たに開いた閲覧コンテキストについて`browsingContext.contextCreated` イベントに送信する `url``about:blank` に更新しました ([Firefox バグ 1775141](https://bugzil.la/1775141))。

#### Marionette

Expand Down
2 changes: 1 addition & 1 deletion files/ja/mozilla/firefox/releases/106/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ l10n:

- `script.getRealms` の基本的なサポートを追加しました。現在は、window レルムと sandbox レルムを含む `WindowRealmInfo` 型に限定されています ([Firefox バグ 1766240](https://bugzil.la/1766240))。

- `browsingContext.load` イベントをサポートしました。これは、ブラウジングコンテキストのウィンドウの `load` イベントをきっかけにして発生します ([Firefox バグ 1756619](https://bugzil.la/1756619))。
- `browsingContext.load` イベントをサポートしました。これは、閲覧コンテキストのウィンドウの `load` イベントをきっかけにして発生します ([Firefox バグ 1756619](https://bugzil.la/1756619))。

- シリアライズしたリモートの値向けの強い参照を保持するための、オブジェクト参照ストアを追加しました ([Firefox バグ 1770736](https://bugzil.la/1770736))。

Expand Down
2 changes: 1 addition & 1 deletion files/ja/mozilla/firefox/releases/112/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ l10n:

#### WebDriver BiDi

- `browsingContext.print` コマンドを実装しました。ブラウジングコンテキストをBase64 でエンコードした文字列で表した PDF 文書を、クライアントに要求できます。詳しくは [Firefox bug 1806810](https://bugzil.la/1806810) をご覧ください。
- `browsingContext.print` コマンドを実装しました。閲覧コンテキストをBase64 でエンコードした文字列で表した PDF 文書を、クライアントに要求できます。詳しくは [Firefox bug 1806810](https://bugzil.la/1806810) をご覧ください。
- `script.addPreloadScript` および `script.removePreloadScript` コマンドを実装しました。後に読み込まれるどのコンテンツスクリプトでも利用できることが保証された機能を、WebDriver が後でコンテキストに挿入するスクリプトより前に、テストクライアントが挿入することを可能にします。詳しくは [Firefox bug 1806420](https://bugzil.la/1806420) および [Firefox bug 1806465](https://bugzil.la/1806465) をご覧ください。
- ノードキャッシュに保存された `Element` および `ShadowRoot` の参照が、まったく同じ一意の参照によって Marionette および WebDriver BiDi の両方で使用できるようになりました。詳しくは [Firefox bug 1770733](https://bugzil.la/1770733) をご覧ください。
- `isRedirect` をネットワークイベントの基本引数から削除しました ([Firefox bug 1819875](https://bugzil.la/1819875))。
Expand Down
Loading

0 comments on commit 9f0b523

Please sign in to comment.