array基础
1.声明数组
var arr = []; 或 var arr = [1,2,3,4];
var arr = new Array(); 或 var arr = new Array(1,2,3); 或 var arr = new Array(n);
2.数组分类:
索引数组:
特点:
1.下标都是数字--无意义
2.length 为数组的长度
3.遍历:for ( var i = 0; i < arr.length; i++ ){}
4.检索只能靠遍历
关联数组(hash算法,散列表):
特点:
1.下标可自定义
2.length永远为0
3.遍历用for(var key in arr){}
4.检索采用hash算法,速度快
哈西算法(hash,散列表)
是指根据键(key)而直接访问在内存存储位置的数据结构。也就是说,他通过计算一个关于键值的函数,将所需查找的数据映射到表中的一个位置来访问记录,加快查找速度。
数组API
1. arr.indexOf()
检索某个元素在数组中的下标位置
2.arr.slice() 不改变元素组
截取数组中的部分元素,生成一个新的数组
arr.slice(0,3);含头不含尾
arr.slice(3);从3到结尾
arr.slice():从头截到位,复制一个数组
3.push和pop
push() 用于向数组的末尾添加若干元素;---推
pop()用于将数组的末尾元素删除;---弹
4.unshift()和shift()
unshift()用于向数组的头部添加若干元素 ---反向移动
shift()用于将数组的头部删除若干元素 ---移动
5.sort()
对数组进行排序;
默认将数组中的每个元素转化为字符串,再升序排列
还可自定义比较器函数传入sort(compare)
6.reverse()
反转数组中的元素
7.splice() 原数组改变
修改数组的万能方法
1.只删除,不添加:
splice(2,2); 从下标为2的元素删除两个元素
2.只添加,不删除
splice(2,0,xx,xx);
3.删除并添加
splice(2,2,xx,xx);
8.concat() 返回新数组,不改变元素组
将多个数组或者元素连接为一个数组
9.join() 返回字符串
将数组中的每一个元素转为字符,并用特定的符号连接起来
10.String(arr)和arr.toString()
将数组中的元素转换为字符,并用逗号分隔。