梳理创建数组的方法

89 阅读1分钟

创建数组的方法很简单,常用的有

  1. 通过 new 关键字,然后结合 Array 构造函数创建数组实例;
  2. 通过数组字面量的方式创建;
let arr1 = new Array();

let arr2 = [];

Array 构造函数在 ES6新增了两个创建数组的静态方法,分别是fromof,下面简单介绍下这两个方法,更多细节可查看 MDN

  • Array.from()可以将类数组或可迭代对象转化为数组
// 将字符串拆分开,转化为数组
console.log(Array.from('keteng')); // [ 'k', 'e', 't', 'e', 'n', 'g' ]

// 浅拷贝原数组
let arr = [1,2,3];
let copyArr = Array.from(arr);
console.log(copyArr); // [ 1, 2, 3 ]

// 转化带有“必要属性”的自定义对象
const obj = {
    0: 'a',
    1: 'b',
    2: 'c',
    3: 'd',
    length: 4 // 继承的 length 属性(定义要手动提供,否则会返回空数组)
}
console.log(Array.from(obj)); // [ 'a', 'b', 'c', 'd' ]

// 转化arguments对象为数组
function fun() {
    console.log(arguments);  // [Arguments] { '0': 'mfr', '1': 'zzm' }
    console.log(Array.from(arguments)); // [ 'mfr', 'zzm' ]
}
fun('mfr', 'zzm');
  • Array.of()可以将任意个数的参数转化为数组
console.log(Array.of('mfr', 'zzm', 'kt')); // [ 'mfr', 'zzm', 'kt' ]
console.log(Array.of(undefined)); // [ undefined ]