2016-04-28 3 views

ответ

1

итераторы не имеют предыдущую функцию. Однако вы можете перемещаться с помощью for..of вместо этого и следить за предыдущим значением:

var mySet = new Set(); 
mySet.add("foobar"); 
mySet.add(1); 
mySet.add("baz"); 

let previous; 
for(const current of mySet.entries()) { 
    console.log(previous, current); 
    previous = current; 
} 

Затем можно обернуть в функцию, которая возвращает генератор, как так:

var mySet = new Set(); 
mySet.add("foobar"); 
mySet.add(1); 
mySet.add("baz"); 

const previousNextIterator = theSet => { 
    return { 
    previous: undefined, 
    *[Symbol.iterator]() { 
     for(const e of theSet.entries()) { 
     yield e; 
     this.previous = e; 
     } 
    } 
    }; 
}; 

const iter = previousNextIterator(mySet); 
for(const current of iter) { 
    console.log(current, iter.previous); 
} 
+0

Спасибо !! это работает.. –

Смежные вопросы