Невозможно вернуть итератор из массива es6.

Я посмотрел на похожие вопросы и дошел до этого, но я все еще не могу реализовать метод итератора для следующего класса.

class RelationshipCollection {

  constructor(){
    this._relationships = [];


  }

  [Symbol.iterator]() {
    return this._relationships[Symbol.iterator]();
  }
}

Когда я бегу

   let collection = new RelationshipCollection();
   collection.forEach(e => {
      console.log('hello');
   })

Я получаю ошибку

forEach не является функцией

Любая помощь будет принята с благодарностью.

Всего 1 ответ


Реализация итератора по своей сути не реализует метод forEach . Это, однако, позволит вам использовать for...of... , поэтому попробуйте for (let e of collection) { console.log('hello', e); } for (let e of collection) { console.log('hello', e); } вместо.

Кроме того, вы можете явно реализовать свой собственный метод forEach для класса, если вы предпочитаете использовать этот синтаксис.


Есть идеи?

10000