Skip to content

Commit

Permalink
update(JS): web/javascript/reference/global_objects/array/foreach (#481)
Browse files Browse the repository at this point in the history
* update(JS): web/javascript/reference/global_objects/array/foreach/index.md

* update(JS): web/javascript/reference/global_objects/array/foreach
  • Loading branch information
undead404 authored Jul 24, 2022
1 parent 0112c8f commit c9bd8b4
Showing 1 changed file with 16 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ browser-compat: javascript.builtins.Array.forEach
```js
// Стрілкова функція
forEach((element) => {
/* ... */
/* */
});
forEach((element, index) => {
/* ... */
/* */
});
forEach((element, index, array) => {
/* ... */
/* */
});

// Функція зворотного виклику
Expand All @@ -38,16 +38,16 @@ forEach(callbackFn, thisArg);

// Функція зворотного виклику, оголошена на місці
forEach(function (element) {
/* ... */
/* */
});
forEach(function (element, index) {
/* ... */
/* */
});
forEach(function (element, index, array) {
/* ... */
/* */
});
forEach(function (element, index, array) {
/* ... */
/* */
}, thisArg);
```

Expand Down Expand Up @@ -79,9 +79,9 @@ forEach(function (element, index, array) {

Функція `callbackFn` викликається з трьома аргументами:

1. значення елементу
2. порядковий номер елементу
3. масив, на котрому викликано `forEach`
1. значення елементу
2. порядковий номер елементу
3. масив, на котрому викликано `forEach`

Якщо у `forEach()` задано параметр `thisArg`, його буде використано як значення `this` у функції зворотного виклику. В загальному випадку значення `this`, яке бачитиме функція `callback`, визначається згідно з [загальними правилами визначення значення `this`, доступного для функції](/uk/docs/Web/JavaScript/Reference/Operators/this).

Expand Down Expand Up @@ -190,7 +190,7 @@ const logArrayElements = (element, index, array) => {
};

// Зауважте, що порядковий номер 2 пропущено, оскільки в масиві не існує
// елементу на цій позиції...
// елементу на цій позиції.
[2, 5, , 9].forEach(logArrayElements);
// logs:
// a[0] = 2
Expand All @@ -200,7 +200,7 @@ const logArrayElements = (element, index, array) => {

### Застосування thisArg

Наступний (надуманий) приклад оновлює властивості об'єкту, з урахуванням поданих елементів масиву:
Наступний (надуманий) приклад оновлює властивості об'єкта, з урахуванням поданих елементів масиву:

```js
function Counter() {
Expand All @@ -223,15 +223,15 @@ console.log(obj.sum); // 16
Оскільки параметр `thisArg` (`this`) було задано в `forEach()`, він передавався до функції `callback` кожного разу, коли вона викликалась. Сама функція зворотного виклику використовує те саме значення `this`.

> **Примітка:** Якщо передачу функції зворотного виклику було використано із застосуванням виразу
> [стрілкової функції](/uk/docs/Web/JavaScript/Reference/Functions/Arrow_functions), то значення параметру `thisArg` можна опустити,
> [стрілкової функції](/uk/docs/Web/JavaScript/Reference/Functions/Arrow_functions), то значення параметра `thisArg` можна опустити,
> оскільки всі стрілкові функції прив'язують значення {{jsxref("Operators/this", "this")}}
> лексично.
### Функція копіювання об'єкту
### Функція копіювання об'єкта

Наступний код створює копію поданого об'єкту.
Наступний код створює копію поданого об'єкта.

Існують різні способи створити копію об'єкту. Спосіб, що наведено нижче - це лише один із них, покликаний показати, як працює `Array.prototype.forEach()` шляхом використання метаметодів `Object.*` з ECMAScript 5.
Існують різні способи створити копію об'єкта. Спосіб, що наведено нижче - це лише один із них, покликаний показати, як працює `Array.prototype.forEach()` шляхом використання метаметодів `Object.*` з ECMAScript 5.

```js
const copy = (obj) => {
Expand Down

0 comments on commit c9bd8b4

Please sign in to comment.