let todoList = {
todoItems: [1, 2, 3, 4],
[Symbol.iterator] () {
console.log('начинаем перебирать массив по кругу!')
let i = -1;
return {
next: () => {
i += 1;
if (i > 10) {
return {
done: true,
value: null,
}
}
return {
done: false,
value: this.todoItems[i % this.todoItems.length],
}
}
};
}
};
for (let item of todoList) {
console.log(item);
}
let iterableTodoList = todoList[Symbol.iterator];
console.log(
'А это символ-итератор в переменной, применим его к другому объекту', iterableTodoList
);
let todoList2 = {
todoItems: ['a', 'b', 'c'],
[Symbol.iterator]: iterableTodoList,
};
for (let item of todoList2) {
console.log(item);
}