Как написать итератор, который будет работать в цикле
for ... of?
Этот код не работает
function makeIterator(array){
var nextIndex = 0;
return {
next: function(){
return nextIndex < array.length ?
{value: array[nextIndex++], done: false} :
{done: true};
}
}
}
var iterator = makeIterator([1,2,3]);
for(var key of iterator.next()) {
console.log(key);
}
Пример итератора взят отсюда
https://developer.mozilla.org/en-US/...rator_examples
upd: понял
function makeIterator(array){
var nextIndex = 0;
function next() {
return nextIndex < array.length ?
{value: array[nextIndex++], done: false} :
{done: true};
}
return {
[Symbol.iterator]: function() {
return {
next: next
};
},
next: next
}
}
var iterator = makeIterator([1,2,3]);
for(var key of iterator) {
console.log(key);
}
https://developer.mozilla.org/ru/doc...rator_protocol