ES7 中的 Array.of 方法详解

阅读时长 3 分钟读完

在 Javascript 中,数组是一种十分常用的数据结构。ES6 提供了一些非常方便的数组相关的方法,但是仍然存在一些场景下需要创建数组,同时也需要指定初始值的情况。这时候,我们可以使用 ES7 中的 Array.of 方法来实现。

Array.of 方法的定义与用法

Array.of 方法用于创建一个由参数组成的新数组,而且不管传入的参数是什么类型,都会被转化为数组的元素。其定义如下:

调用 Array.of 方法时,我们可以传入任何类型的参数。这些参数会被转化成数组的元素,并作为一个新数组返回。

Array.of 方法与 Array 构造函数的区别

在 ES6 中,我们通常使用 Array 构造函数来创建数组。但是 Array 构造函数存在一个问题,当你传入的参数只有一个时,它会将参数作为数组的长度值。而如果传入的参数是一个数字时,可能会与我们预期的结果不一致,导致出现问题。

比如,我们在使用 Array 构造函数创建一个包含 3 个元素的数组时,不能直接使用下面的代码:

因为这个语句创建的数组不是包含 3 个元素的数组,而是一个长度为 3 的空数组。而如果我们使用 Array.of 方法,则不会出现这样的问题。

我们可以通过下面的示例代码来看看 Array.of 方法和 Array 构造函数的区别:

如上所示,使用 Array.of 方法创建的数组只包含一个元素,而使用 Array 构造函数创建的数组包含了 3 个未定义的元素。

Array.of 方法的应用

除了使用 Array.of 方法来解决 JavaScript 中创建数组时的问题,它还能用来方便地将一组值转化为数组。比如,我们可以将一些 Node 对象作为参数传入 Array.of 方法来创建一个 Node 对象数组,如下所示:

上面的代码将使用 Array.of 方法创建了一个包含 3 个 Node 对象的数组,并将其打印在控制台中。我们也可以使用 Array.from 方法来实现同样的效果,不过它需要多一步显式地进行类型转换,比较麻烦。

除此之外,我们也可以使用 Array.of 方法来方便地操作函数的参数。比如,在以下示例中我们定义了一个函数,它接受一个参数,并将其转化成数组:

上面的代码将输出一个包含 1 个元素的数组 [2]

总结

在 JavaScript 中,Array.of 方法能够帮助解决使用 Array 构造函数时出现的问题,同时也可以方便地将一组值转化为数组,更加便利地操作函数参数。虽然在实际应用中使用频率不是特别高,但它仍然是一个十分有用的工具。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64606f44968c7c53b021e09e

纠错
反馈