js迭代器
时间: 2023-08-06 12:27:07 浏览: 45
JavaScript 迭代器(Iterator)是一种用于遍历集合(如数组或对象)中元素的机制。它是用于提供迭代器协议的对象。迭代器协议是一种使对象可迭代的通用方式,即对象必须具有一个 `next()` 方法,该方法返回一个包含 `value` 和 `done` 两个属性的对象。
`value` 属性表示当前迭代到的值,`done` 属性表示是否已经完成了迭代。当 `done` 为 `true` 时,表示迭代已经结束,此时 `value` 属性可以是任何值。
以下是一个简单的 JavaScript 迭代器示例:
```javascript
function makeIterator(array) {
let nextIndex = 0;
return {
next: function() {
return nextIndex < array.length
? { value: array[nextIndex++], done: false }
: { done: true };
}
};
}
const it = makeIterator(['a', 'b', 'c']);
console.log(it.next().value); // 'a'
console.log(it.next().value); // 'b'
console.log(it.next().value); // 'c'
console.log(it.next().done); // true
```
在上面的示例中,`makeIterator()` 函数接受一个数组作为参数,并返回一个迭代器对象。迭代器对象具有一个 `next()` 方法,每次调用 `next()` 方法都会返回一个包含 `value` 和 `done` 属性的对象。在每次调用 `next()` 方法后,`nextIndex` 变量的值都会递增,以便下一次调用 `next()` 方法时返回下一个元素。
迭代器的使用让我们可以更方便地遍历集合中的元素,不用再使用传统的 for 循环或 while 循环来遍历。