由于js数组的构造函数不能初始化定长等值数组,以前碰到这个问题的时候只能想到用循环遍历来创建。为了这样简单的目的专门写一个冗长的for循环感觉很傻气。
受到利用JSON.stringify
与JSON.parse
两个互逆操作进行深拷贝的启发,我们同样可以用join
与split
两个互逆操作解决上述问题:
//创建一个长度为10的全零数组
var a = new Array(11).join('0').split('')
但是这种方法创建的数组值为字符串,要映射成其他类型可以用map
,有了ES6箭头函数的加持,map用起来也很舒服。
但是我们并不能直接在new Array(10)
后面调用map
,因为稀疏数组中的键值对是还未创建的,导致map
无法访问到empty
的值。