iterator

我们知道可以通过for .. in来获取对象的属性名字,而for .. of是获取对应的value.

并且for .. of是需要iterable才可以。

// example1
let ar = ['xiaohesong']
let art = ar[Symbol.iterator]()
art // Array Iterator
art.next() //{value: "xiaohesong", done: false}
art.next() // {value: undefined, done: true}

//example2
let str = 'string'
let strIt = str[Symbol.iterator]()
strIt // StringIterator

// example3
let o = {name: 'xhs'}
let obj = o[Symbol.iterator]() //Uncaught TypeError: o[Symbol.iterator] is not a function

看下面代码。来改写,可迭代。

let range = {
  from: 1,
  to: 5
};

// We want the for..of to work:
// for(let num of range) ... num=1,2,3,4,5

改写成这样

再来看一个例子

  • Array.from

Last updated