АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗jsSpItIOC 67 of 294 menu

Создание итерируемого объекта в JavaScript

Давайте создадим настоящий итерируемый объект, который можно будет перебрать через цикл for-of. Для этого объекту нужно добавить соответствующую функцию в Symbol.iterator.

Давайте реализуем. Пусть у нас есть следующий объект:

let obj = { a: 1, b: 2, c: 3, };

Добавим функцию в Symbol.iterator:

obj[Symbol.iterator] = function() { }

Превратим эту функцию в генератор:

obj[Symbol.iterator] = function *() { }

Внутри нашей функции this будет ссылаться на сам объект:

obj[Symbol.iterator] = function *() { console.log(this); // сам объект }

Запустим в итераторе перебор объекта:

obj[Symbol.iterator] = function *() { for (let key in this) { yield obj[key]; } }

Все, объект можно перебирать циклом for-of:

for (let elem of obj) { console.log(elem); // 1, 2, 3 }

Сделайте объект, который можно перебрать циклом for-of. Пусть в элемент цикла попадает объект, в ключе key которого будет ключ перебираемого объекта, а в ключе val - значение. Пример:

let obj = {a: 1, b: 2, c: 3}; for (let elem of obj) { console.log(elem); }

Выведет:

{key: 'a', val: 1} {key: 'b', val: 2} {key: 'c', val: 3}
enru