javascript中的数组
1,索引数组
索引数组没有什么可以介绍的,这里重点介绍的是关联数组
下标为数字的数组
如:var arr = [1,2,3,4];
2,关联数组
什么是关联数组:
可自定义下标名称的数组
为什么要使用关联数组
普通的索引数组的下标都是无意义的数字。不便于快速查找元素。也容易出现歧义.
//我们希望每一个数组元素有意义
[林心如, 81, 53, 86]
//name math chs eng
何时:
希望每个元素有专门的名称时,通常用于快速定位元素
如何使用:
创建: 2步:
- 1.创建空数组:
var lxr=[];
- 2.向空数组中添加新元素: 使用自定义的字符串元素名作为下标
lxr["name"]="林心如";
lxr["math"]=81;
lxr["chs"]=53;
lxr["eng"]=86;
访问元素:
lxr["name"]
强调: 关联数组的length失效
遍历: 不能用for循环
用for in循环:
其中in,表示依次取出数组中每个下标
for(var key in hash){
key//每个元素的下标名称
hash[key]//当前元素值
}
关联/hash数组原理:
hash算法: 接收一个字符串,并计算出一个尽量不重复的序号
- 相同的字符串,计算出的号总是一样的
不同的字符串,计算出的号大多数不重复 - 存入数据:
hash算法接收一个字符串的下标名,计算出一个不重复的序号。将数据存储在序号对应的数组位置上 - 获取数据:
将下标名称交给hash算法,算出和存入时完全相同的序号,直接去序号位置查找元素 - 优点: 查找极快!
和数组中元素个数,以及元素在数组中的位置无关。