ES7中的Array.prototype.values方法

在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