数组02
4.数组的遍历
遍历:一次访问数组中的每个元素
索引数组:下标为数字的数组
for(var i=0;i<arr.length;i++){
console.log(arr[i]);//输出数组中的当前元素
}
关联数组:下标部位数字的数组(关联数组没有length属性
关联数组不能用for遍历,要用for....in遍历)
for(var key in hash){
//key 代表关键字,即下标
//hash代表数组名
}
案例: var zse=[];
zse['name']='张三';
zse['age']='18';
zse['sex']='boy';
console.log(zse);
for(var key in zse){
console.log(zse[key]);
}
5.数组排序
arr.sort();
var arr=[2,4,3,5,1];
var str=arr.sort();
console.log(str);
像以下这种函数用arr.sort无法实现排序,这时候就需要用到比较器函数
var arr=[1,12,22,13,23,33,3,2];
function cmp(a,b){
return a-b;//升序排列
return b-a;//降序排列
}
console.log(arr.sort(cmp));
栈和队列
栈:一段封闭,只能从一端进出的数组
first in last out 先进的后出
结尾出入栈:
入: arr.push(值);//相当于给数组末尾添加新元素
出: var last=arr.pop();
优: 每次出入栈不影响其余元素的位置
var arr=[1,2,3,4,5];
var str=arr.push('a');//相当于给数组末尾追加新元素
console.log(arr);
var str1=arr.pop();//相当于删除数组中的最后一个元素
console.log(arr);
开头出入栈:
入: arr.unshift(值);
出: var first=arr.shift();
var arr=[1,2,3,4,5];
var str=arr.unshift('a');//相当于给数组开头追加新元素
console.log(arr);
var str1=arr.shift();//相当于删除数组中的第一个元素
console.log(arr);
队列: 只能从一端进入,从另一端出
顺序: FIFO
何时: 只要按照先来后到的顺序使用元素
如何:
从结尾入队列: arr.push(值)
从开头出队列: var first=arr.shift()