在ES6中,我们已经看到了许多新的Array方法,诸如map, filter, reduce等,它们极大地简化了数组操作。然而,ES7引入了Array.prototype.values
方法,使我们能够更轻松地遍历数组的所有值,让我们更好地理解这个方法。
什么是Array.prototype.values?
Array.prototype.values
方法通过返回一个新的数组值迭代器,使我们能够按顺序访问一个数组的每个值。它返回一个生成器对象,可以用于迭代中获取当前的数组值。这个方法和ES6的Array.prototype.keys
方法和Array.prototype.entries
方法类似。
在此之前,我们可能会使用for...of
循环遍历数组。例如:
--- --- - --- -- --- --- ---- --- -- ---- - ----------------- -
输出结果将是:
- - -
而当我们使用Array.prototype.values
时,上面的循环可以被转化为:
--- --- - --- -- --- --- -------- - ------------- --- ---- ----- -- --------- - ------------------- -
输出结果仍然是:
- - -
为什么我们需要Array.prototype.values?
那么,我们为什么还需要Array.prototype.values
呢?现在,我们只有一个很小的数组,所以我们能够很容易地使用for...of
循环。但是如果我们有一个非常庞大的数组,这将很慢和非常占用内存,因为for...of
每次都为全量的数组分配了一个迭代器。
使用Array.prototype.values
方法,我们可以避免这个问题并提高性能。原因在于,它只返回迭代器,而不是整个数组。我们可以在循环的每一个迭代器中处理每个值,而不是一次性处理完整个数组。这将节省大量的内存和提高性能,特别是在处理大型数组时。
在代码中使用Array.prototype.values
现在,我们来看看如何在代码中使用Array.prototype.values
方法。
--- --- - --- -- --- --- -------- - ------------- ----------------------------------- -- - ----------------------------------- -- - ----------------------------------- -- - ----------------------------------- -- ---------
注意,当我们迭代整个数组时,最后一个console.log
将返回undefined
,因为最后一个值已经被处理完成并从迭代器中移除了。
结论
在本文中,我们已经学习了Array.prototype.values
方法,这是ES7中最新的JavaScript中的一个有用增强。我们也学习了它的用法和为什么我们需要它。在使用JavaScript时,Array.prototype.values
可能会成为日常工作中非常有用的工具。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670b265fd91dce0dc887d558