Skip to content

Commit

Permalink
update(JS): web/javascript/reference/global_objects/object/entries (#441
Browse files Browse the repository at this point in the history
)

* chore: fix some anchors in /Web/JavaScript/Reference/Global_Objects/Object/entries

* update(JS): web/javascript/reference/global_objects/object/entries/index.md

* update(JS): web/javascript/reference/global_objects/object/entries/index.md

* update(JS): web/javascript/reference/global_objects/object/entries

Co-authored-by: Mykola Myslovskyi <[email protected]>
  • Loading branch information
undead404 and AdriandeCita authored Jul 16, 2022
1 parent ac00e6d commit 124f3a1
Showing 1 changed file with 4 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ browser-compat: javascript.builtins.Object.entries

{{JSRef}}

Метод **`Object.entries()`** повертає власні перелічувані властивості переданого об'єкта як масив пар `[ключ, значення]`. Метод враховує лише ті властивості, які мають рядковий ключ. Це працює так само як і цикл {{jsxref("Statements/for...in", "for...in")}}, за винятком того, що цикл `for...in` також перебирає властивості, які доступні через ланцюжок прототипів.
Метод **`Object.entries()`** (записи) повертає власні перелічувані властивості переданого об'єкта як масив пар `[ключ, значення]`. Метод враховує лише ті властивості, які мають рядковий ключ. Це працює так само як і цикл {{jsxref("Statements/for...in", "for...in")}}, за винятком того, що цикл `for...in` також перебирає властивості, які доступні через ланцюжок прототипів.

Порядок елементів у масиві, поверненому з `Object.entries()`, є таким самим, як і при циклі {{jsxref("Statements/for...in", "for...in")}}. Якщо потрібен якийсь інший порядок, то масив слід спочатку відсортувати, як от `Object.entries(obj).sort((a, b) => b[0].localeCompare(a[0]));`.

Expand All @@ -35,30 +35,7 @@ Object.entries(obj);

## Опис

Метод `Object.entries()` повертає масив, елементи якого є масивами пар `[ключ, значення]`, що відповідають перелічуваним властивостям з рядковими ключами, знайденим безпосередньо на об'єкті. Порядок властивостей такий самий, як і під час перебору властивостей об'єкту в циклі.

## Поліфіл

Щоб додати сумісну підтримку методу `Object.entries()` в старіших середовищах, які не мають нативної реалізації цього методу, можна використати будь-що з наступного переліку:

- Демонстраційна реалізація методу `Object.entries`, яка була запропонована у [tc39/proposal-object-values-entries](https://github.com/tc39/proposal-object-values-entries) (якщо не потрібна підтримка IE);
- Поліфіл в репозиторіях [es-shims/Object.entries](https://github.com/es-shims/Object.entries);
- або ж можна використати простий, готовий до встановлення поліфіл, наведений нижче:

```js
if (!Object.entries) {
Object.entries = function (obj) {
var ownProps = Object.keys(obj),
i = ownProps.length,
resArray = new Array(i); // заздалегідь розмістимо новий масив
while (i--) resArray[i] = [ownProps[i], obj[ownProps[i]]];

return resArray;
};
}
```

Щодо поліфілу вище: якщо вам також потрібна підтримка IE<9, вам знадобиться ще й поліфіл для `Object.keys()` (наприклад, такий, який розміщено на сторінці {{jsxref("Object.keys")}}).
Метод `Object.entries()` повертає масив, елементи якого є масивами пар `[ключ, значення]`, що відповідають перелічуваним властивостям з рядковими ключами, знайденим безпосередньо на об'єкті. Порядок властивостей такий самий, як і під час перебору властивостей об‘єкта в циклі.

## Приклади

Expand Down Expand Up @@ -95,7 +72,7 @@ console.log(Object.entries('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]
// окрім рядків (див. приклад вище), оскільки примітиви не мають власних властивостей
console.log(Object.entries(100)); // [ ]

// елегантно перебираємо пари ключ-значення властивостей об'єкту
// елегантно перебираємо пари ключ-значення властивостей об‘єкта
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
Expand All @@ -119,7 +96,7 @@ console.log(map); // Map(2) {"foo" => "bar", "baz" => 42}

### Перебирання властивостей `Object`

За допомогою [деструктуризації масиву](/uk/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#destrukturyzatsiia-masyvu) можна з легкістю перебирати поля об'єкту.
За допомогою [деструктуризації масиву](/uk/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#destrukturyzatsiia-masyvu) можна з легкістю перебирати поля об‘єкта.

```js
const obj = { foo: 'bar', baz: 42 };
Expand Down

0 comments on commit 124f3a1

Please sign in to comment.