学习underscore.js数组相关API的时候.遇到了sparse array这个东西,曾经没有接触过. 这里学习下什么是稀疏数组和密集数组. 什么是密集数组呢?在java和C语言中,数组是一片连续的存储空间,有着固定的长度.增加数组事实上位置是address.长度为n.那么占用的存储空间是address[0],address[1],address[2].......address[n-1].即数组元素之间是紧密相连的,不存在空隙.例如以下的js代码创建的就是一个密集数组 var data
事情是这样的 今天我想写一个能快速生成一个自然数数组的函数,就是[0,1,2,3]这样的,然后我写了下面的代码: new Array(10).map((item, index) => { return index }) 我本以为会得到一个0-9的数组,结果确发现map方法并没有执行.原来是稀疏数组在搞鬼. 什么是稀疏数组 首先看下面这个问题: a = [undefined,undefined]; b = new Array(2); a,b的元素个数是不是一样呢,从length上来看的一样的,都是
密集数组 数组是一片连续的存储空间,有着固定的长度.加入数组其实位置是address,长度为n,那么占用的存储空间是address[0],address[1],address[2].......address[n-1].即数组元素之间是紧密相连的,不存在空隙.如下的js代码创建的就是一个密集数组 1 var data = [3,1,6,9,2]; 稀疏数组 与密集数组相反,javascript并不强制要求数组元素是紧密相连的,即允许间隙的存在.如下的js代码是合法的: 1 2 3 4 5 var