//模拟next()遍历
var it = makeIterator(['a', 'b', 'c'])
function makeIterator(array) {
let nextIndex = 0;
return {
next: function () {
return nextIndex < array.length ? { value: array[nextIndex++], done: false } : { value: undefined, done: true }
}
}
}
console.log(it.next())
console.log(it.next())
console.log(it.next())
console.log(it.next())
// Iterator 接口的目的,就是为所有数据结构,提供了一种统一的访问机制,即for...of循环
// 原生具备 Iterator 接口的数据结构如下。
// Array
// Map
// Set
// String
// TypedArray
// 函数的 arguments 对象
// NodeList 对象
// 数组的iterator属性
let arr = ['a', 'b', 'c']
let iter = arr[Symbol.iterator]()
console.log(iter.next())
console.log(iter.next())
console.log(iter.next())
console.log(iter.next())
for (let i of arr) {
console.log(i)
}
var obj = {
aaa: 111,
bbb: 222,
ccc: 333
}
for (i in obj) {
console.log(obj[i])
}
Iterator - 学习笔记
于 2022-02-28 20:36:49 首次发布