热搜:fiddler git ip 代理 m1
历史搜索

22. ES6+ Array.of()方法

游客2024-09-06 07:30:01
目录文章目录
  1. 1. 前言
  2. 2. 方法详情
  3. 2.2 基本实例
  4. 3. 对比 Array()
  5. 4. 扩展
  6. 5. 小结

1. 前言

本节介绍 ES6 的数组的新增方法 Array.of() 该方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。Array.of() 主要是弥补数组构造函数 Array() 的不足。因为参数个数的不同,导致 Array() 的重载,Array.of 不存在由于参数不同而导致的重载,并且基本上可以用来替代 Array() 或 new Array()

2. 方法详情

2.1 基本语法

Array.of() 是创建数组的方法,它接收若干个参数,返回一个新的 Array 实例,类似 Array() 方法。

语法使用:

Array.of(element0[, element1[, ...[, elementN]]])

参数解释:

参数 描述
elementN 数组元素,可以是任意个参数,将按顺序成为返回数组中的元素

2.2 基本实例

Array.of() 会按顺序接受 N 个参数,接收的所有参数都会成为新数组的项。

Array.of(7);          // [7] 
Array.of(1, 2, 3);    // [1, 2, 3]
Array.of(undefined)   // [undefined]
Array.of(3).length    // 1

3. 对比 Array()

Array.of 的主要作用是弥补 Array() 的不足的,下面我们来看看他们有什么不同。

Array() 会根据接收的参数不同从而返回不同的数组,例如:

Array()               // []
Array(3)              // [, , ,]
Array(2, 12)          // [2, 12]

Array.of()            // []
Array.of(3)           // [3]
Array.of(2, 12, 'a')  // [2, 12, "a"]

Array 方法在没有参数、一个参数、两个参数时,返回结果都不一样。

  • 没有参数的时候返回一个空数组;
  • 有一个参数的时候,返回一个长度为此参数的空数组,并且此数组不能被迭代;
  • 有两个参数的时候,才会把参数当成数组的每一项返回;

由于参数的不同 Array 方法会进行重载,而且他们的行为也不一致,Array.of() 方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型。

4. 扩展

如果原生不支持的话,可以手动实现一个 Array.of() 方法。

if (!Array.of) {
  Array.of = function() {
    return Array.prototype.slice.call(arguments);
  };
}

使用 Array 的 slice 方法把接收到的 arguments 参数,转化成数组的每一项。

5. 小结

本章讲解了 ES6 的 Array.of() 方法,该方法用于创建数组,主要为了替换 Array() 方法,弥补 Array() 方法的不足。

标签:Array