创建数组的方法很简单,常用的有
- 通过 new 关键字,然后结合 Array 构造函数创建数组实例;
- 通过数组字面量的方式创建;
let arr1 = new Array();
let arr2 = [];
Array 构造函数在 ES6新增了两个创建数组的静态方法,分别是from
和 of
,下面简单介绍下这两个方法,更多细节可查看 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 ]