宝哥软件园

javascript稀疏数组和密集数组用法分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

本文说明了javascript稀疏数组和密集数组的用法。分享给大家参考,如下:

在学习与下划线. js数组相关的API时,我遇到了稀疏数组,这是我以前从未接触过的。

在这里了解什么是稀疏数组和密集数组。

什么是密集阵列?在Java和C语言中,数组是一个固定长度的连续存储空间。添加的数组的实际位置是地址,长度是n,因此占用的存储空间是地址[0],地址[1],地址[2].地址[n-1]。也就是阵列元素紧密相连,没有缝隙。下面的js代码创建了一个密集数组

var数据=[3,1,6,9,2];什么是稀疏数组?与密集数组相反,javascript不要求数组元素紧密连接,即允许有间隙。以下js代码是合法的:

var稀疏=新数组();稀疏[0]=0;稀疏[3]=3;警报(稀疏[0]);//输出0alert(稀疏[1]);//输出undefined1,创建稀疏数组

下面的代码创建一个固定长度的稀疏数组

var a=新数组(3);a[2]=1;警报(a[0]);//undefinedalert(a[2]);//1说白了,在js中构建稀疏数组很容易,只要刻意让数组元素之间存在间隙。诸如

var arr=[];arr[0]=0;arr[200]=200;2.创建密集阵列

可以看出js中的数组一般都是稀疏的,遍历稀疏数组一般比较麻烦。

var密集=Array.apply(null,Array(3));这一行代码相当于var密集=array(未定义,未定义,未定义);呵呵,这种方法和稀疏阵没什么区别是不是很奇怪?看看代码:

//稀疏数组var Array=new Array(3);数组[2]=' name ';for(数组中的var a){ console . log(' index=' a ',value=' array[a]);}//密集数组var密集=array。apply (null,数组(3));密集[2]=' name ';for(var a in density){ console . log(' index=' a ',value=' density[a]);}使用F12观察控制台输出是:

可以看出是有区别的:稀疏数组只遍历一次(因为只有一个元素),密集数组遍历三次。

3.摘要

javaScript中的数组不像我们在C或Java等语言中遇到的传统数组。在js中,数组不是由起始地址长度组成的连续地址空间。

javascript中的数组实际上是一个对象,但是它会自动管理一些‘数字’属性和长度属性。

更直接地说,JavaScript中的数组根本没有索引,因为索引应该是一个数字,但是JavaScript中数组的索引实际上是一个字符串。

Arr[1]实际上是arr['1']。如果arr['1000']=1,arr.length将自动变为1001。

这些表达式的根本原因是JavaScript中的对象是从字符串到任意值的键值对。

虽然稀疏数组和密集数组的区别不大,但javascript没有语法强制数组稀疏或密集,这只是概念上的区别。

最佳实践是在java或C语言中将js数组视为数组,并让我们的程序员负责使js数组元素连续。

诸如

var数组=[1,2,3,4];例如:

var Array=new Array();数组[0]=0;数组[1]=1;以这种方式创建的js数组符合熟悉的数组。

更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》和0103010

希望本文对JavaScript编程有所帮助。

更多资讯
游戏推荐
更多+