1.创建数组的4种方式
1.var 变量名=[];
2.var 变量名=[v1,v2,v3,...];
3.var arr=new Array();
4.var arr=bew Array(n);
2.JS数组和其他语言数组的区别
JS数组下标越界不会出错
1.为不存在的位置赋值:不会出错,会自动创建制定下表的新元素
2.从不存在的位置取值:不会出错也不会创建新元素,而是返回undefined
3..length属性的使用
1.arr[arr.length-1]: 获得指定数组的最后一个元素
2.arr[arr.length]=新值; 在指定数组末尾追加新值
3.减小arr.length, 删除arr的末尾元素
4.数组遍历
5.关联数组
关联数组中的.length属性失效
关联数组的下表不能重复
关联数组的遍历:
for(var key in arr){
key;
arr[key];
}
6.冒泡排序(手写)
7.数组API
1. 数组 to String:2种
var str=arr.toString();
var str=arr.join("连接符");
两个技巧:
1.将字符组成单词:arr.join("")
2.将单词组成句子:arr.join(" ")
2. 拼接和截取(API无法直接修改源对象)
拼接:var newArr=arr.concat(另一个数组,值1,值2,...)
截取:var subArr=arr.slice(starti,endi+1); 含头不含尾
3.splice:删除 插入 替换
删除:直接修改原数组对象
arr.aplice(starti,删除个数);
插入:
arr.splice(starti,新值1,...);
替换:
arr.splice(starti,删除个数,新值1,...);
4.arr.reverse():颠倒
5.arr.sort();
默认将所有元素转换成字符串升序排列
***比较器函数(专门比较两数大小)
***函数对象作为参数
js中函数本质上就是对象
自定义sort方法的排序
arr.sort(function(a,b){return a-b;})
8.栈和队列
push()尾进 pop()尾出 unshift()头进 shift()头出
1.栈
1.末尾出入栈
入栈:arr.push()
出栈:var last=arr.pop()
2.开头出入栈
入栈:arr.unshift()
出栈:arr.shift()
2.队列
入队列:arr.push()
出队列:var first=arr.shift()
9.二维数组
创建方式:2
1.先创建空数组,再赋值
var arr=[];
arr[0]=[xx,xx,...];
2.创建数组时,同时初始化子数组
var arr=[
[1,2,3],
[4,5,6],
[7,8,9]
]
二维数组中行下标不能越界