遍历器 迭代器
遍历器就是第一个对象,这个对象有一个
next
方法,会返回需要的数据,可遍对象就是那些部署了Symbol.iterator
属性的对象。我们也可以通过[].entries()
获取到数组的遍历器
const colors = ['red', 'blue', 'green'];
// 这里的 `iterator` 就是遍历器
const iterator = colors[Symbol.iterator]();
// `iterator` 上面有个一 `next` 方法,每一次执行都会返回一个对象,包含一个 `name` 属性记录值和一个 `done` 属性记录遍历是否完结。
iterator.next(); // {value: "red", done: false}
构建数组中的 values
方法
目前的浏览器上只有 [].keys()
这个方法,返回的就是一个遍历器对象,我们可以自己尝试构建一个 [].values()
方法
const colors = ['red', 'blue', 'green'];
Array.prototype.values = function () {
let i = 0;
let items = this;
return {
next() {
const done = i >= items.length;
const value = done ? undefined : items[i++];
return {
value,
done
}
}
}
}
网友评论