Method values()
trả về một Array Iterator
object chứa các giá trị của mỗi index trong mảng.
Cú Pháp
arr.values()
Giá trị trả về
Một object Array
lặp lại mới.
Ví dụ
Sử dụng vòng lặp 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 là triển khai mặc định của Array.prototype[Symbol.iterator].
Array.prototype.values === Array.prototype[Symbol.iterator] //true
Sử dụng vòng lặp .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
Sử dụng một lần: đối tượng trình lặp mảng là một đối tượng sử dụng một lần hoặc tạm thời
Ví dụ:
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
Lý do: khi next().done=true
hoặc currentIndex>length
thì vòng lặp for..of
kết thúc. Xem tại Iteration protocols.
Giá trị: không có giá trị nào được lưu trữ trong object lặp mảng; thay vào đó, nó lưu trữ địa chỉ của mảng được sử dụng trong quá trình tạo của nó và do đó phụ thuộc vào các giá trị được lưu trữ trong mảng đó.
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"
nếu các giá trị trong mảng thay đổi thì các giá trị trong mảng lặp cũng thay đổi.
TODO: please write about why we need it, use cases.
Thông số kỹ thuật
Thông số kỹ thuật |
---|
ECMAScript (ECMA-262) The definition of 'Array.prototype.values' in that specification. |
Tính tương thích của trình duyệt web
BCD tables only load in the browser