From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../global_objects/array/@@iterator/index.html | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/array/@@iterator/index.html (limited to 'files/uk/web/javascript/reference/global_objects/array/@@iterator') diff --git a/files/uk/web/javascript/reference/global_objects/array/@@iterator/index.html b/files/uk/web/javascript/reference/global_objects/array/@@iterator/index.html new file mode 100644 index 0000000000..3ab9407b4e --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/array/@@iterator/index.html @@ -0,0 +1,116 @@ +--- +title: 'Array.prototype[@@iterator]()' +slug: Web/JavaScript/Reference/Global_Objects/Array/@@iterator +tags: + - Array + - ECMAScript 2015 + - JavaScript + - Ітератор + - Масив + - метод + - прототип +translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@iterator +--- +
{{JSRef}}
+ +

Початковим значенням властивості @@iterator є та сама функція, яка є початковим значенням властивості {{jsxref("Array.prototype.values()", "values()")}}.

+ +

Синтаксис

+ +
arr[Symbol.iterator]()
+ +

Значення, що повертається

+ +

Початкове значення, що надається ітератором {{jsxref("Array.prototype.values()", "values()")}}. За замовчуванням, використання arr[Symbol.iterator] поверне функцію {{jsxref("Array.prototype.values()", "values()")}}.

+ +

Приклад

+ +

Перебір за допомогою циклу for...of

+ +
var arr = ['a', 'b', 'c', 'd', 'e'];
+var eArr = arr[Symbol.iterator]();
+// ваш переглядач має підтримувати цикл for..of
+// та змінні, оголошені через let, у циклах for
+// також можна використати const та var
+for (let letter of eArr) {
+  console.log(letter);
+}
+
+ +

Альтернативний перебір

+ +
var arr = ['а', 'б', 'в', 'г', 'ґ'];
+var eArr = arr[Symbol.iterator]();
+console.log(eArr.next().value); // а
+console.log(eArr.next().value); // б
+console.log(eArr.next().value); // в
+console.log(eArr.next().value); // г
+console.log(eArr.next().value); // ґ
+
+ +

Випадок використання позначення через квадратні дужки

+ +

Використовувати цей синтаксис замість позначення через крапку (Array.prototype.values()) зручно, коли ви не знаєте заздалегідь, яким буде об'єкт. Якщо ви маєте функцію, що приймає ітератор та перебирає значення, але не знаєте, чи матиме цей об'єкт метод [Iterable].prototype.values. Це може бути вбудований об'єкт, такий як String, або користувацький об'єкт.

+ +
function logIterable(it) {
+  var iterator = it[Symbol.iterator]();
+  // ваш переглядач має підтримувати цикл for..of
+  // та змінні, оголошені через let, у циклах for
+  // також можна використати const та var
+  for (let letter of iterator) {
+      console.log(letter);
+  }
+}
+
+// Масив
+logIterable(['а', 'б', 'в']);
+// а
+// б
+// в
+
+// рядок
+logIterable('абв');
+// а
+// б
+// в
+ +

Специфікації

+ + + + + + + + + + + + + + + + + + + + + +
СпецифікаціяСтатусКоментар
{{SpecName('ES2015', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}}{{Spec2('ES2015')}}Початкове визначення.
{{SpecName('ESDraft', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}}{{Spec2('ESDraft')}}
+ +

Сумісність з веб-переглядачами

+ + + +

{{Compat("javascript.builtins.Array.@@iterator")}}

+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf