一、数组排序:
1、冒泡排序:用每一个元素去比较后一个元素,如果大于后一个元素,则替换位置
var arr=[3,12,54,36,8,76,2,35,765,3412,312,5,13631,12,53,36,8,76,35,3,7312,436,5,31];
for(var j=1;j<arr.length;j++){
for(var i=0;i<arr.length-j;i++){
console.log(1);
if(arr[i]>arr[i+1]){
var m=arr[i];
arr[i]=arr[i+1];
arr[i+1]=m;
}
}
}
API排序:arr.sort():
默认将元素转为字符串,用asc码比较来排序
数字排序:固定用法:
var arr=[3,3,5,7,11,4,2,5,6];
//a是后一个数,b是后一个数,这方法自动带有循环
arr.sort(function(a,b){
//如果返回的是一个正数,说明a大于前一个数
return a-b;
//这是正序排列,如果想要倒序排列则是b-a
})
console.log(arr)
二、栈和队列:
其实就是数组添加元素和删除元素的新方式:
栈:开头进,开头出;结尾进,结尾出
开头添加新元素:arr.unshift(新元素,....)//会从数组的0下标开始添加,把原本的挤到后面去
开头删除元素:var arr=arr.shift();//一次只能删一个,从数组的0下标开始删
结尾添加新元素:arr.push(新元素,...)//从数组后面开始添加进去
结尾删除元素:var arr=arr.pop()//一次只能删一个,从数组的最后开始删
队列:一端进,一端出
开头添加新元素:arr.unshift(新元素,....)//会从数组的0下标开始添加,把原本的挤到后面去
结尾删除元素:var arr=arr.pop()//一次只能删一个,从数组的最后开始删
结尾添加新元素:arr.push(新元素,...)//从数组后面开始添加进去
开头删除元素:var arr=arr.shift();//一次只能删一个,从数组的0下标开始删
三、二维数组:数组的元素,又引用着另外一个数组
创建方式:
var arr=[[池塘,草鱼,多少条]
[池塘,鲤鱼,多少条]
[池塘,鲫鱼,多少条]
]
访问:arr[先行下标][列下标]:如果列下标越界返回的是undefined,行下标越界的话就会报错
遍历二维数组:必然要用两层循环;外层循环控制行,内层循环控制列
for(var r=0;r<arr.length;r++){
for(var c=0;c<arr[r].length;c++){
console.log(arr[r][c]);
}
}
四:定时器
//创建一个定时器
var timer=setInterval(function(){
//这是定时器里面的操作
btn.onclick();
//定时器间隔多久执行一次里面的操作
},1500)
//鼠标移入一个元素,关闭定时器,自定义
div.onmouseover=function(){
clearInterval(timer)
}
//鼠标移出一个元素,再次开启定时器
div.onmouseout=function(){
//这里不能添加var,就是要让timer重新赋值,
timer=setInterval(function(){
btn.onclick();
},1500)
}