最近忽然发现新的名词,特此记录一下,其实稀疏数组和密集数组在平时经常会用到,只是没有发现它的真实名字
稀疏数组
稀疏数组:数组中大部分内容没有被使用,为空位
那么如何创建稀疏数组呢?
(1)
// 最常见的创建方式
let arr = new Array(3)
这里创建了一个长度为3的数组,那我们看一下打印结果
这里要注意一下,不是undefined,而是3个空位
(2)
let arr = [];
arr[100] = 1 ;
我们在看一下打印结果,
创建了1个前100都为空位,只有101位赋值成1的数组
密集数组
我理解密集数组,就是每一位都有内容,只要不是empty,就算内容为undefined,也属于密集数组
那如何去创建内容为undefined的数组,即如何去创建密集数组呢?
(1)通过使用ES6数组的fill(),为数组中填内容,这里用0将数组填满
// 使用ES6的数组fill API
let arr = new Array(3).fill(0);
(2)使用…扩展运算符
let arr = new Array(...Array(3));
看一下打印结果,数组内元素均被赋值为undefined
(3) 使用Array.from()
let arr = Array.from({length:3});
观察打印结果
可以看出,此方法也仍然可以实现
如有错误,请及时帮我纠正,谢谢各位大佬~