wiki/content/20201014092846-javascript_iterator.md

41 lines
819 B
Markdown

---
date: 20201014
id: 9f77a5b0-a06d-46d0-828e-d6c5fe33111d
title: JavaScript Iterator
---
# Introduction
An *iterator* is a pointer for traversing the elements of a data
structure.
# Examples
## Syntax
``` javascript
const iterable = ["a", "b"];
const iterator = iterable[Symbol.iterator]();
console.log(iterator.next()); // { value: 'a', done: false }
console.log(iterator.next()); // { value: 'b', done: false }
console.log(iterator.next()); // { value: undefined, done: true }
```
## TypeScript Interfaces
Expressed as [interfaces](20200929162220-interfaces) in
[TypeScript](20200929161126-typescript) notation:
``` typescript
interface Iterable {
[Symbol.iterator]() : Iterator;
}
interface Iterator {
next() : IteratorResult;
}
interface IteratorResult {
value: any;
done: boolean;
}
```