在 ES7 中,JavaScript 新增了一个非常方便的 Array 原型方法 Array.prototype.values()
。这个方法是为了返回一个新的迭代器对象,迭代器对象中包含了数组中的每个元素。
Array.prototype.values() 方法的语法
Array.prototype.values()
方法没有参数,其语法如下:
arr.values()
其中 arr
是待返回迭代器的数组对象。
Array.prototype.values() 方法的作用
Array.prototype.values()
方法返回一个迭代器对象,该对象包含了数组中每个元素的value值。这个迭代器对象能够遍历数组中所有的元素,包括那些被删除或者那些数组中不存在的元素。
Array.prototype.values() 方法的示例
-- -------------------- ---- ------- ----- --- - --------- --------- -------- ----- -------- - ------------- ----------------------------------- -- ------- ----------------------------------- -- -------- ----------------------------------- -- ------ ----------------------------------- -- --------- ----------------------------------- -- ---------
以上代码中,我们定义了一个 arr
数组,该数组包含了三个元素。然后,我们调用了 arr.values()
方法,获取了一个迭代器对象 iterator
。接着,我们通过调用 iterator.next()
方法取出迭代器对象中下一个元素的值,直到迭代完整个数组。
此外,因为迭代器对象可以遍历数组中所有的元素,所以 Array.prototype.values()
方法可用于直接使用 for-of 循环,如下示例代码:
const arr = ['apple', 'banana', 'pear']; for (const item of arr.values()) { console.log(item); }
以上代码等同于如下代码:
const arr = ['apple', 'banana', 'pear']; for (const item of arr) { console.log(item); }
主要区别在于,前者使用了 arr.values()
方法获取数组迭代器对象并通过 for-of 遍历数组,后者直接使用 for-of 遍历数组。虽然两者在结果上没有区别,但使用 arr.values()
方法将更加明确和直观。
为什么要使用 Array.prototype.values() 方法
使用 Array.prototype.values()
方法可以为我们的开发工作带来以下好处:
- 获取数组迭代器对象,简化数组迭代操作;
- 支持读取和迭代数组中每个元素的 values 值;
- 可以使用迭代器遍历数组中所有存在和不存在的元素。
结论
在 ES7 中,Array 增加了一个非常方便的原型方法 Array.prototype.values()
。该方法可以直接获取数组迭代器对象,并且简化了对数组的迭代操作。同时,它还支持读取和迭代数组中每个元素的 value 值,能够使用迭代器遍历数组中的所有元素,包括那些不存在的元素。因此,建议在开发中积极使用 Array.prototype.values()
方法,以提高工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67395500317fbffedf164231