--- title: Array.prototype.values() slug: Web/JavaScript/Reference/Global_Objects/Array/values translation_of: Web/JavaScript/Reference/Global_Objects/Array/values ---
{{JSRef}}

Method values()trả về một Array Iterator object chứa các giá trị của mỗi index trong mảng.

{{EmbedInteractiveExample("pages/js/array-values.html")}}

Cú Pháp

arr.values()

Giá trị trả về

Một object {{jsxref("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.

Thông số kỹ thuật

Thông số kỹ thuật
{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}

Tính tương thích của trình duyệt web

{{Compat("javascript.builtins.Array.values")}}

Xem thêm