Array iterators
The [Symbol.iterator]() method of Array instances implements the iterable protocol and allows arrays to be consumed by most syntaxes expecting iterables, such as the spread syntax and for...of loops. It returns an array iterator object that yields the value of each index in the array.
The initial value of this property is the same function object as the initial value of the Array.prototype.values property.
Browser support
| Feature | Desktop | Mobile | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 38 | 12 | 36 | 10 | 38 | 10 | |
| Built-in object | ||||||
| The entries() method of Array instances returns a new array iterator object that contains the key/value pairs for each index in the array. | 38 | 12 | 28 | 8 | 38 | 8 |
| The keys() method of Array instances returns a new array iterator object that contains the keys for each index in the array. | 38 | 12 | 28 | 8 | 38 | 8 |
| The values() method of Array instances returns a new array iterator object that iterates the value of each item in the array. | 66 | 14 | 60 | 9 | 66 | 9 |
- This feature was removed in a later browser version (36)
- This feature was removed in a later browser version (27)
- Previously available under a different name: @@iterator (27)
- A placeholder property named `@@iterator` is used.
- Previously available under a different name: iterator (17)
- A placeholder property named `iterator` is used.
Syntax
const arr = ['a', 'b', 'c'];
for (const [i, v] of arr.entries()) {
console.log(i, v); // 0 'a', 1 'b', 2 'c'
}
[...arr.keys()]; // [0, 1, 2]
[...arr.values()]; // ['a', 'b', 'c'] Live demo
ki- and Value Read with entries()
For...of loop in, index and value simultaneous to getout..
Use cases
-
Using Array iterators
The [Symbol.
Cautions
- No specific concerns. Stable across all major browsers.
Accessibility
- When updating the DOM dynamically, announce important changes to assistive technology with aria-live regions.