Итератор на обект в JavaScript
Нека създадем итератор, с помощта на който ще можем да обхождаме обект. Като начало ще направим генератор, който приема обект като параметър и го обхожда:
function *func(obj) {
for (let key in obj) {
yield obj[key];
}
}
Сега нека създадем итератор:
let iter = func({a: 1, b: 2, c: 3});
Нека обходим итератора с цикъл:
for (let elem of iter) {
console.log(elem); // 1, 2, 3
}
Направете итератор, който ще обхожда обект и с всяко извикване да връща масив, в нулевия елемент на който ще бъде ключът, а в първия елемент - стойността на елемента от обекта. Пример:
let iter = func({a: 1, b: 2, c: 3});
for (let elem of iter) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}