如何在Javascript中定义一个有初始值的数组?
众所周知,在JS中定义一个数组,如果没有指定某个索引的值,则默认为undefined。那么,如果我们想定义一个长度为20,且初始值为空字符串的数组,该怎样实现呢?
这是最容易想到的办法:
const arr = [];
for (let i = 0; i < 20; i++) {
arr[i] = '';
}
这样的实现倒也是很简单,但是每次初始化都要写一个循环感觉还是有些繁琐的,因此我们之前可能会封装一个函数来实现这个功能。
但是ES2015中的Array.prototype.fill()
方法给了我们一个更优雅,更简洁的实现方式,它可以用一个固定值填充数组中从起始索引到终止索引中的全部元素。
这个方法包含三个参数:value
, start
,end
。
value
即该固定值,start
与end
分别为起始索引与终止索引,这两个参数可以省略,起始索引的默认值是0,终止索引的默认值是数组的长度,指定始末索引时是左闭右开的区间,即不包括终止索引。
现在,以上的问题我们可以直接用一行代码实现:
const arr = new Array(20).fill('')
这个算是很简单的技巧,但确实很有用。
ES2015的新增了不少语法糖,善用的话能够让代码精简许多,如果只是为了应试等原因只是把它们死记下来,那就没有价值了,活学活用才是最好的方式。