javascript第七章
栈和队列:
js中没有专门的栈和队列类型,都是用普通该数组模拟的。
何时: 只要希望按照顺序使用数组元素时
栈: 一端封闭,只能从另一端进出的数组
顺序: FILO
何时: 如果希望始终操作最后进入数组的最新的元素时。
如何:
结尾出入栈:
入: arr.push(值);
出: var last=arr.pop();
优: 每次出入栈不影响其余元素的位置
开头出入栈:
入: arr.unshift(值);
出: var first=arr.shift();
缺: 每次出入栈都会影响每个元素的位置
队列: 只能从一端进入,从另一端出
顺序: FIFO
何时: 只要按照先来后到的顺序使用元素
如何:
从结尾入队列: arr.push(值)
从开头出队列: var first=arr.shift()
1. 二维数组:
什么是: 数组中的元素,又引用了另一个子数组。
何时:
1. 存储横行竖列的二维数据
2. 对一个大的数组中的元素,进一步分类
如何:
创建:
1. 先创建空数组,再添加子数组:
var arr=[];
arr[0]=[2,2,4,0];
arr[1]=[0,2,2,0];
2. 在创建数组同时,初始化子数组
var arr=[
[2,2,4,0],//0
[0,2,2,0],//1
...
];
访问元素:
arr[r][c]:访问arr中r位置的子数组中的c位置的元素
越界: r不能越界
遍历: 外层循环控制行,内层循环控制列
for(var r=0;r
for(var c=0;c
arr[r][c]//当前元素
}
}
*去除数组中的重复项
var arr=[1,2,3,4,5,2,3,4];
for(var i=0,uarr=[arr[0]];i
for(var j=0;j
if(arr[i]==uarr[j]){
break;
}
}
if(j===uarr.length){
uarr[uarr.length]=arr[i];
}
}
console.log(uarr);
求数组中的最大值
var arr=[1,2,3,4,5];
//遍历数组,同时声明变量sum并赋值为arr中的任何一个值
for(var i=0,sum=2;i
if(arr[i]>sum){
sum=arr[i];
}
}
console.log(sum);
输入一串成绩,求总分最高分,最低分
var arr=[60,68,70,75,82,93,56];
for(var i=0,sum=0,height=arr[0];i
sum+=arr[i];//求总分
求最高分
if(arr[i]>height){
height=arr[i];
}
求最低分
if(arr[i]
height=arr[i];
}
}
console.log(sum);
console.log(height);