Web/JavaScript/Reference/Global objects/Array/values
The values() method returns a new Array Iterator object that contains the values for each index in the array.
Syntax
arr.values()
Return value
A new Array iterator object.
Examples
Iteration using for...of loop
var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();
for (let letter of iterator) {
console.log(letter);
} //"a" "b" "c" "d" "e"
Array.prototype.values is default implementation of Array.prototype[Symbol.iterator].
Array.prototype.values === Array.prototype[Symbol.iterator] //true
Iteration using .next()
var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();
iterator.next(); // Object { value: "a", done: false }
iterator.next().value; // "b"
iterator.next()["value"]; // "c"
iterator.next(); // Object { value: "d", done: false }
iterator.next(); // Object { value: "e", done: false }
iterator.next(); // Object { value: undefined, done: true }
iteraror.next().value; // undefined
One-use: the array iterator object is one use or temporary object
example:
var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();
for (let letter of iterator) {
console.log(letter);
} //"a" "b" "c" "d" "e"
for (let letter of iterator) {
console.log(letter);
} // undefined
reason: When next().done=true or currentIndex>length the for..of loop ends. See Iteration protocols.
Value: there are no values stored in the array Iterator object; instead it stores the address of the array used in its creation and so depends on the values stored in that array.
var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();
console.log(iterator); // Array Iterator { }
iterator.next().value; // "a"
arr[1]='n';
iterator.next().value; // "n"
if the values in the array changed the array iterator object values change too.
TODO: please write about why we need it, use cases.
Specifications
| Specification |
|---|
| ECMAScript (ECMA-262)The definition of 'Array.prototype.values' in that specification. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
values
|
Chrome
Full support 66 |
Edge
Full support 12 |
Firefox
Full support 60 |
IE
No support No |
Opera
Full support 53 |
Safari
Full support 9 |
WebView Android
Full support 66 |
Chrome Android
Full support 66 |
Firefox Android
Full support 60 |
Opera Android
Full support 47 |
Safari iOS
Full support 9 |
Samsung Internet Android
Full support 9.0 |
nodejs Full support 10.9.0 Full support 10.9.0 Full support 6.5.0 Notes' The |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.'
- See implementation notes.
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
See also
Array.prototype.keys()Array.prototype.entries()Array.prototype.forEach()Array.prototype.every()Array.prototype.some()
Array.prototype.values() by Mozilla Contributors is licensed under CC-BY-SA 2.5.