JavaScript学习笔记整理(四)

来源:互联网 发布:steam淘宝为什么便宜 编辑:程序博客网 时间:2024/06/05 15:20
var arr=[33,43,35,34,63,345,2,424,234,32,2423,424,13];
for(var b=1;b<arr.length;b++){
for(var i=0;i<arr.length;i++){
if(arr[i]>arr[i+1]){
a=arr[i];
arr[i]=arr[i+1];
arr[i+1]=a;
}
}
}
document.write(arr);
arr.reverse()数组颠倒
arr.sort();数组排序,默认按照字符串升序排序
function compare(a,b){return a-b}; 升序排序
function compare(a,b)(return -(a-b)) 降序排序1》2》3》4,正好反过来 不是很理解
var arr=[33,43,35,34,63,345,2,424,234,32,2423,424,13];
function compareASE(a,b){
return a-b;
}
function compereeDESC(a,b){
return -(a-b);
}
function sortASE(){
arr.sort(compareASE);
console.log(arr.toSting());
}
function sortDESC(){
arr.sort(compareDESC);
console.log(arr.toSting());
}
进栈和出栈;栈只能在一端出去和进入,另一端封闭
栈操作:结尾入栈出栈:元素下标始终不变
开头入栈出栈操作,所有元素下边随入栈和出栈的变化而变化
入栈:arr.push();          arr.unshift(值1,---);
出栈:var last=arr.pop();  var first=arr.shift();


var bus=[];
for(var i=1;i<=5;i++){
bus.push("乘客"+i);
}
document.write(bus+"<br>");
下车
while(bus.length>0){
var customer=bus.pop();
document.write(customer+"下车"+"<br>");
}
document.write(bus+"<br>");
var bus=[];                  //入栈操作
for(var i=1;i<=5;i++){
bus.unshift("乘客"+i);
}
document.write(bus+"<br>");
for(var i=1;i<=5;i++){//出栈操作
bus.push("乘客"+i);
}
document.write(bus+"<br>");
十进制转化为二进制
一个目的:了解push存储
var bin=[];
var num=131;
while(num!=0){
bin.push(num%2);
num=parseInt(num/2);  //利用parseInt保留整数部分
}
bin.reverse();            //将数据翻转
document.write(bin.join(""));   //字符串拼接
队列:先进先出,后进后出
五个人和你抢手机,但是只有五部手机
var count=5;//共有五部手机
var queue=[];
for(var i=1;i<=5;i++){
queue.push("顾客"+i);
}//先后来了五个顾客
queue.push("小明");
queue.push("你");//最后你来了排队
document.write("当前排队的顾客:"+queue+"<br>");
//列出队列的每一个人,表示卖出一部手机
while(count>0){
var customer=queue.shift();
document.write(customer+"抢购成功<br>");
count--;
}//卖完手机里面,剩下的人就是没有抢到的人
document.write(queue+"没有抢上");
二维数组
1.定义一个规整的二维数组
var arr1=[[11,12,13],[21,22,23],[31,32,33]];
2.定义一个不规整的二维数组
var arr2=new Array();
arr2[0]=[101];
arr2[1]=[201,202];
arr2[2]=[301,302,303];
定义一个类似表格一样的二维数组表
var arr3=new Array();
arr3[0]=new Array(101,'jesse','2010-10-1');
arr3[1]=new Array(102,'ruihan','2010-10-1');
arr3[2]=new Array(103,'zhenyu','2010-10-1');
访问数组的下标
arr[父数组中的下标][子数组中的下标];
arr1[1][1]是指的是第一个元祖的第一个元素
var arr1=[[11,12,13],[21,22,23],[31,32,33]];
document.write(arr1[1][1]);
写一个二维数组,存储省市,做到省市联动
var provs=['北京市','天津市','山东省'];
var cities=[
/*[0]*/ ['朝阳区','海淀区','东城区'],
/*[1]*/['南开区','和平区','河东区'],
/*[2]*/['德州市','济南市','青岛市','烟台市','济宁市','菏泽市']
];
function getCitiesByprov(prov){
//如何确定prov在provs中的下标?
var index;
for(var i=0;i<provs.length;i++){
if(prov==provs[i]){
index=i;
break;
}
}
if(index!==undefined){
var arr=cities[index];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
}
}

2017.11.24城市二级联动
var city=['山东省','北京市','天津市'];
var group=[
['济宁','德州','青岛'],
['顺义区','大兴区','天安门'],
['和平区','南开区','滨海新区']
];
function getcitybygroup(citys){
var index;
for(var i=0;i<=city.length;i++){
if(citys==city[i]){
index=i;
break;
}
}
if(index!=undefined){
console.log(group[index].toString())
}
}
HTML代码:
<button onclick="getcitybygroup('天津市')">天津市</button>
<button onclick="getcitybygroup('山东省')">山东省</button>
<button onclick="getcitybygroup('北京市')">北京市</button>
使用关联数组进行查找——>常用的方法,关系数组必须用var group={}来定义
var group={
'山东省':['济宁','德州','青岛'],
'北京市':['顺义区','大兴区','天安门'],
'天津市':['和平区','南开区','滨海新区']
};
function getcitytogroup(citys){
// var index;
console.log(group[citys].toString());
}
<button onclick="getcitytogroup('天津市')">天津市</button>
<button onclick="getcitytogroup('山东省')">山东省</button>
<button onclick="getcitytogroup('北京市')">北京市</button>
遍历数组里面的小数组  通过for循环遍历二维数组,很重要的
var group=[
/*0*/['济宁','德州','青岛'],
/*1*/['顺义区','大兴区','天安门'],
/*2*/['和平区','南开区','滨海新区']
];
for(var n=0;n<group.length;n++){
for(var i=0;i<group[n].length;i++){
document.write(group[n][i]);
}
}