ES12 标准下的 JavaScript:Array.of() 方法详解,Array.fill() 深入分析

在 ES12 (ES2021) 标准中,JavaScript 引入了一些新的方法和特性,其中包括 Array.of() 和 Array.fill() 方法。这两个方法都是用来处理数组的,本文将对它们进行详细的介绍和分析。

Array.of() 方法详解

Array.of() 方法是用来创建一个新的数组实例的,与 Array 构造函数不同的是,它不会受到参数数量的影响,即使只传递一个参数也会创建一个包含该参数的数组。下面是一个示例:

----- ---- - ----------- -- ---
----- ---- - ------------
------------------ -- --- -- --
------------------ -- ---

可以看到,即使只传递一个参数,Array.of() 方法仍然会创建一个数组。

与 Array 构造函数的行为相比,Array.of() 方法更加可靠和直观。因为在使用 Array 构造函数创建数组时,如果只传递一个数字参数,它将被解释为数组的长度而不是数组的值。这可能会导致一些意外的行为:

----- ---- - --- --------- -- ------- - ---
----- ---- - --- -------- -- --- -- ------ - ------ --- -- --
----- ---- - --- ----------- -- ------------- -----

因此,推荐在创建数组时使用 Array.of() 方法。

Array.fill() 方法深入分析

Array.fill() 方法用来填充数组中的元素,可以用一个固定的值或者一个函数来填充。下面是一个示例:

----- --- - --- -- -- -- ---
------------ -- ------------- -
----------------- -- --- -- -- -- --

fill() 方法还可以接受两个可选的参数,分别是填充的起始位置和结束位置。例如,如果我们只想填充数组的前三个元素:

----- --- - --- -- -- -- ---
----------- -- --- -- ------------- -
----------------- -- --- -- -- -- --

可以看到,fill() 方法只填充了数组的前三个元素,后两个元素保持不变。

除了使用一个固定的值来填充数组外,我们还可以使用一个函数来填充数组,这个函数会接收数组中当前元素的值和索引作为参数。例如,我们可以使用一个函数来将数组中的所有奇数元素加 1:

----- --- - --- -- -- -- ---
---------------- ------ -- -
  -- ------ - - --- -- -
    ------ ----- - --
  -
  ------ ------
---
----------------- -- --- -- -- -- --

可以看到,fill() 方法使用我们提供的函数对数组中的元素进行了处理,将所有奇数元素加 1。

另外需要注意的是,fill() 方法会修改原始数组,如果我们想要创建一个新的数组,可以使用 map() 方法:

----- --- - --- -- -- -- ---
----- ------ - --------------- -- -
  -- ------ - - --- -- -
    ------ ----- - --
  -
  ------ ------
---
----------------- -- --- -- -- -- --
-------------------- -- --- -- -- -- --

总结

Array.of() 和 Array.fill() 方法都是用来处理数组的,它们可以让我们更方便地创建和操作数组。Array.of() 方法可以创建一个包含任意数量元素的数组,而不会受到参数数量的影响。Array.fill() 方法可以用一个固定的值或者一个函数来填充数组中的元素,还可以指定起始位置和结束位置。需要注意的是,fill() 方法会修改原始数组,如果我们想要创建一个新的数组,可以使用 map() 方法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6602764dd10417a222e1bcdf