js的稀疏数组和密集数组

一般来说,JavaScript中的数组是稀疏的。
什么是稀疏呢?稀疏也就是说,数组中的元素之间可以有空隙,因为一个数组其实就是一个键值映射。

1、稀疏数组

首先来创建一个稀疏数组看看长什么样

var arr = Array(3)
console.log(arr) //[empty × 3]

上面的代码创建了一个长度为3的数组,但是当我们遍历的时候会发现,他并没有元素,所以js会默认跳过这些元素。这就是稀疏数组。

还可以以这种形式创建稀疏数据

var arr = []
arr[0] = 1
arr[100] = 2
console.log(arr)  //[1, empty × 99, 2]

虽然数组的长度为101,但是实际元素只有两个,这也是一种稀疏数组。

2、密集数组

创建一个密集数组试试看

var arr = Array.apply(null, Array(3));
console.log(arr) //[undefined, undefined, undefined]

解析:Array.apply(null, Array(3))

Array(3) 相当于var arr = new Array(3);
Array.apply(null,arr);相当于new Array(arr[0],arr[1],arr[2]);
arr虽然长度为3,但却是一个稀疏数组,拿到的值都是undefind
你现在可以看到数组里面有真实元素了,虽然元素的值是undefined,但是你可以遍历到这些数组元素了,还可以为每个元素重新赋值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:JS中的数组格式 在C语言中,定义的数组类型的结构是连续的。在内存中,会根据定义的数组的类型和大小,确定一片对...
    安静的牛蛙阅读 3,311评论 0 0
  • 数组的排序 sort()方法排序问题。 sort()方法是Array原型链上自带的方法。 默认排序顺序是根据字符串...
    无迹落花阅读 3,671评论 1 0
  • 数组是有序的集合,有序很重要,逗号隔开,逗号很重要。每一个值叫元素,而每个元素在数组中有一个位置,以数字表示(关联...
    感觉不错哦阅读 3,846评论 0 0
  • JavaScript 数组的 API 经常会被 JS 开发者频繁使用,在整个 JavaScript 的学习过程中尤...
    金融测试民工阅读 4,477评论 2 0
  • 一、数组方法汇总 shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var ...
    快抓住那个胖子阅读 2,299评论 0 0