Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[es] Web/JavaScript/Reference/Global_Objects/Map/forEach #23222

Merged
merged 3 commits into from
Aug 27, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: Map.prototype.forEach()
slug: Web/JavaScript/Reference/Global_Objects/Map/forEach
l10n:
sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c
---

{{JSRef}}

El método **`forEach()`** de las instancias de {{jsxref("Map")}} ejecuta la función provista, una vez por cada tupla llave/valor en este _map_, en orden de inserción.

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

## Sintaxis

```js-nolint
forEach(callbackFn)
forEach(callbackFn, thisArg)
```

### Parámetro

- `callbackFn`
- : Una función que se ejecuta por cada entrada en el _map_. La función es llamada con los siguientes argumentos:
- `value`
- : El valor de cada iteración.
- `key`
- : La llave de cada iteración.
- `map`
- : El _map_ que esta siendo iterado.
- `thisArg` {{optional_inline}}
- : Un valor que se usa como `this` cuando se ejecuta la función `callbackFn`.

### Valor devuelto

Ningúno ({{jsxref("undefined")}}).

## Descripción

El método `forEach` ejecuta la función `callback` provista, una vez por cada llave que actualmente existe en el _map_. No se invoca para llaves que fueron borradas. Sin embargo, la función es ejecutada para valores que se encuentran en el objeto, pero que su valor es `undefined`.

La función `callback` es invocada con **tres argumentos**:

- el `value` del elemento
- el `key` del elemento
- el **objeto `Map`** que se esta iterando
JuanVqz marked this conversation as resolved.
Show resolved Hide resolved

Si el parámetro `thisArg` se provee a la función `forEach`, este se pasará a la función `callback` cuando sea invocada, para usarse como el valor `this`. De lo contrario, el valor `undefined` será pasado para usarse como el valor `this`. El valor `this` que finalmente es visible para la función `callback`, es determinado de acuerdo a [las reglas para determinar el valor `this` visible para una función](/es/docs/Web/JavaScript/Reference/Operators/this).

Cada valor es visitado una vez, excepto en el caso en que el valor es borrado y agregado antes de que `forEach` haya terminado. La función `callback` no es invocada para valores que se borraron antes de ser visitados. Los valores agregados antes de que `forEach` termine, serán visitados.

## Ejemplos

### Imprimiendo el contenido de un objeto Map

El siguiente código, registra en la consola un mensaje por cada elemento en un objeto `Map`:

```js
function logMapElements(value, key, map) {
console.log(`map.get('${key}') = ${value}`);
}
new Map([
["foo", 3],
["bar", {}],
["baz", undefined],
]).forEach(logMapElements);
// Logs:
// "map.get('foo') = 3"
// "map.get('bar') = [object Object]"
// "map.get('baz') = undefined"
```

## Especificaciones

{{Specifications}}

## Compatibilidad con navegadores

{{Compat}}

## Véase también

- {{jsxref("Array.prototype.forEach()")}}
- {{jsxref("Set.prototype.forEach()")}}