aboutsummaryrefslogtreecommitdiff
path: root/files/vi/web/javascript/reference/global_objects/array/values/index.html
blob: 9460fdfbc38b357369933b1b205e8c5575516d9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
---
title: Array.prototype.values()
slug: Web/JavaScript/Reference/Global_Objects/Array/values
translation_of: Web/JavaScript/Reference/Global_Objects/Array/values
---
<div>{{JSRef}}</div>

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

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

<h2 id="Cú_Pháp">Cú Pháp</h2>

<pre class="syntaxbox notranslate"><var>arr</var>.values()</pre>

<h3 id="Giá_trị_trả_về">Giá trị trả về</h3>

<p>Một object {{jsxref("Array")}} lặp lại mới.</p>

<h2 id="Ví_dụ">Ví dụ</h2>

<h3 id="Sử_dụng_vòng_lặp_for...of_loop">Sử dụng vòng lặp for...of loop</h3>

<pre class="brush: js notranslate">var arr = ['a', 'b', 'c', 'd', 'e'];
var iterator = arr.values();

for (let letter of iterator) {
  console.log(letter);
}  //"a" "b" "c" "d" "e"
</pre>

<p><strong>Array.prototype.values</strong> là triển khai mặc định của <strong>Array.prototype[Symbol.iterator]</strong>.</p>

<pre class="notranslate">Array.prototype.values === Array.prototype[Symbol.iterator]      //true</pre>

<h3 id="Sử_dụng_vòng_lặp_.next">Sử dụng vòng lặp .next()</h3>

<pre class="brush: js notranslate">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 </pre>

<div class="blockIndicator warning">
<p>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</p>
</div>

<p>Ví dụ:</p>

<pre class="brush: js notranslate">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
</pre>

<p><strong>Lý do:</strong> khi <code>next().done=true</code>  hoặc  <code>currentIndex&gt;length</code> thì vòng lặp <code>for..of</code> kết thúc. Xem tại <a href="/en-US/docs/Web/JavaScript/Reference/Iteration_protocols">Iteration protocols.</a></p>

<p><strong>Giá trị</strong>: 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 đó.</p>

<pre class="brush: js notranslate">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"
</pre>

<div class="blockIndicator note">
<p>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.</p>
</div>

<p class="hidden"><strong>TODO</strong>: please write about why we need it, use cases.</p>

<h2 id="Thông_số_kỹ_thuật">Thông số kỹ thuật</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Thông số kỹ thuật</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Tính_tương_thích_của_trình_duyệt_web">Tính tương thích của trình duyệt web</h2>

<div>


<p>{{Compat("javascript.builtins.Array.values")}}</p>
</div>

<h2 id="Xem_thêm">Xem thêm</h2>

<ul>
 <li>{{jsxref("Array.prototype.keys()")}}</li>
 <li>{{jsxref("Array.prototype.entries()")}}</li>
 <li>{{jsxref("Array.prototype.forEach()")}}</li>
 <li>{{jsxref("Array.prototype.every()")}}</li>
 <li>{{jsxref("Array.prototype.some()")}}</li>
</ul>