Implemented Iterator in ES6
阿新 • • 發佈:2018-12-11
class Fruits { constructor() { this.items = []; } add(item) { this.items.push(item); } [Symbol.iterator]() { const elements = this.items; const total = (elements && elements.length) || 0; let i = -1; return { next() { i++; return { value: elements && elements[i], done: i >= total ? true : false } } } } } const fruits = new Fruits(); fruits.add({ name: 'Apple', count: 10 }); fruits.add({ name: 'Banana', count: 5 }); for (var f of fruits) { console.log(f); }