#数组
##一:数组的定义
1. 数组是值的有序集合
2. 每一个值叫做一个元素
3. 每个元素在数组中都有一个位置,以数字表示,叫做索引。索引从0开始。
##二:特点
1. 数组的元素可以是任何类型。
2. 数组索引从0开始,最大为2^32-2 4294967294个元素
##三:创建数组
1. 使用数组直接量[ ]
var arr=[1,2,3];
2. 使用构造函数
var arr = new Array(10); 10个元素苏
var arr = new Array(‘a‘,‘b‘,‘c‘);
##四:数组的长度
arr.length;
length属性只计算非负整数的索引
##五:数组元素的访问和修改
1. 使用[]
2. 数字类型的字符串 也可以访问数组元素
##六:稀疏数组
(稀疏数组就是不连续索引的数组)
1. var arr = new Array(3); -- 是稀疏数组
2. var arr = [,,]; -- 是稀疏数组
3. var arr = [1,2];arr[10]=100; -- 是稀疏数组
4. 使用delete删除一个元素 得到稀疏数组
##七数组元素的添加
1. 为新索引赋值 arr[4]=2;
2. 利用数组长度在数组尾部插入新元素 arr[arr.length]=5;
3. push() 在尾部加入新元素 arr.push(‘abc’);
4. unshift()在前面加入一个新元素 arr.unshift(‘abc’);
##八:数组的删除
1. 删除数组后面的一个元素 delete()不推荐--产生稀疏数组
2. pop() 删除数组最后一个元素 arr.pop();
3. shift() 删除数组第一个元素 arr.shift();
##九:判断是否数组
typeof []; 无法进行判断
ESMA5定义新的方法用来判断是否数组: Array.isArray([]);
##十:搜索数组是否具有的元素
arr.indexOf();
如果存在返回元素位置
如果不存在返回-1
##十一:数组的遍历:
1. 使用for循环遍历
for(var i = 0; i < arr.length;i++){
console.log(arr[i]);
}
2. 使用for/in循环
for(var i in arr){
console.log(arr[i]);
}
3. 注意:遍历稀疏数组 和 特殊下标数组时的区别</font>
4. 使用forEach(); 传入匿名函数
> <font color="pink">低版本IE不支持</font>
##十二:数组的方法:
1. join()把数组的元素拼接成字符串
var message = arr.join(‘,’);
2. concat() 合并多个数组
var message = arr.concat([12,43],[4,35,3]);
var message = arr.concat(1,2,3);
var message = arr.concat(1,2,[4,,5,[6,,7]]);
3. slice() 截取数组中的一部分(不破坏原数组),返回新的数
var arr = list.slice(2); 取出从下标2到后面的所有元素
var arr = list.slice(2,4); 取出从下标2到下标4(不含4)的元素>
4. splice() 删除、替换、添加、 破坏原数组 返回删除的内容
var new_arr = list.splice(2); 下标2以后的元素
var new_arr = list.splice(2,2); 下标2以后的两个元素
4.1 在指定位置添加新的元素
var arr = [3,454,435,343];
arr.splice(2,0,’abc’);
在435的位置前添加一个abc
4.2 替换指定位置的元素
var arr=[1,2,3,4];arr.splice(2,1,’abc’);
将3替换成abc;
5. reverse() 数组反转 改变原数组
6. sort(); 数组排序,必须使用排序函数 list=[1,334,32,324];
list.sort(function(a,b){return a-b;});
7. toString() 把数组转换为字符串
8. toLocaleString()把数组转换为本地字符串(不常用)