es6-for-of

es6-for-of

by 郭 凡

JavaScript

let arr = ['a', 'b' , 'c'];
for(let i of arr) {
	if(i == 'b') {
  	break;
  }
	console.log(i);
}
let it = arr[Symbol.iterator]();
console.log(it.next());
console.log(it.next());
console.log(it.next());
console.log(it.next());

class RangeIterator {
  constructor(start, stop) {
    this.value = start;
    this.stop = stop;
  }

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

  next() {
    var value = this.value;
    if (value < this.stop) {
      this.value++;
      return {done: false, value: value};
    } else {
      return {done: true, value: undefined};
    }
  }
}

function range(start, stop) {
  return new RangeIterator(start, stop);
}

let demo = range(0, 3);
let ie = demo[Symbol.iterator]();
console.log(ie.next());
console.log(ie.next());
console.log(ie.next());
console.log(ie.next());

let str = "hell";
let st = str[Symbol.iterator]();
console.log(st.next());
console.log(st.next());
console.log(st.next());
console.log(st.next());
console.log(st.next());