一、Array 构造函数还有两个 ES6 新增的用于创建数组的静态方法:from()和 of()。from()用于将 类数组结构转换为数组实例,而 of()用于将一组参数转换为数组实例。

  1. // arguments 对象可以被轻松地转换为数组
  2. function getArgsArray() {
  3. return Array.from(arguments);
  4. }
  5. console.log(getArgsArray(1, 2, 3, 4)); // [1, 2, 3, 4]
  1. // from()也能转换带有必要属性的自定义对象
  2. const arrayLikeObject = {
  3. 0: 1,
  4. 1: 2,
  5. 2: 3,
  6. 3: 4,
  7. length: 4
  8. };
  9. console.log(Array.from(arrayLikeObject)); // [1, 2, 3, 4]

二、Array.of

Array.of()可以把一组参数转换为数组。这个方法用于替代在 ES6之前常用的 Array.prototype. slice.call(arguments),一种异常笨拙的将 arguments 对象转换为数组的写法:

  1. console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4]
  2. console.log(Array.of(undefined)); // [undefined]