快速创建含有多个元素的数组

  目录

快速并且简单的创建数组

快速创建含有多个元素的数组

我们平时在开发时,有时候可能会创建一个包含20个元素的数组,之后对这个数组进行加工操作,来制作一个符合业务要求的数组。

1
2
3
4
5
// 比如我要创建一个包含20个元素的数组
var arr = [];
for(var 1=0; i<20; i++) {
arr.push(undefined);
}

上面虽然创建了数组,但是感觉麻烦了点。

1
2
3
4
5
6
var arr = new Array(20);
// 这样创建的数组,只是有长度,但是数组里并没有元素
arr.length // 20
0 in arr // false
// arr 这个数组使用map, forEach等方法是便利不了的
// 创建一个长度为20的数组,注意该数组的元素并没有被初始化

好了,有几种方便的创建方式,见下面

1
2
3
4
5
6
7
8
9
// 首先,看一下vue官网里出现的创建方式
Array.apply(null, {length: 20}); // ES5开始apply函数的第二个参数除了可以是数组外,还可以是类数组对象(即包含length属性,且length属性值是个数字的对象)
// 这里顺便说一下{length: 20}这个参数的作用
function fn() {
console.log(arguments)
}
fn(undefined,undefined,undefined);
fn.apply(null, {length: 3});
// 通过上面的代码,就可以看出来{length: 3}这个参数的含义了吧

最后,总结一下可以快速创建有初始值得数组方法

1
2
3
4
5
6
// 1
Array.apply(null, {length: 20});
// 2
Array.from({length: 20})
// 3
Array(20).fill(undefined)