一.数组及数组的方法
1.数组:一组数据的集合,在js中数组里面的数据可以是不同类型
2.数组的初始化
(1)第一种方法:
var myScar=new Array();
myScar[0]='Baoma';
myScar[2]='Aodi';
myScar[3]='BenChi';
(2)第二种方法:
var myScar=new Array('Baoma','Aodi','BenChi');
(3)第三种方法:
var myScar=['Baoma','Aodi','BenChi'];
alert(myScar.length);
3.数组的操作方法:
(1) Join():将数组成员通过一个分割符合并成字符串
//创建数组同事对元素赋值
//var arr=new Array('html','css','JavaScript');
//没有使用分隔符的join()方法
//document.write(arr.join()+'<br />');//返回"html,css,JavaScript"
//使用分隔符的join()方法
//document.write(arr.join('*'));//返回:html*css*JavaScript
(2)push()和pop()从数组最后添加或者删除成员
var arr=new Array('html','css','javascript');
document.write('原有数组元素:'+arr+'<br />');
arr.push('jquery','Ajax'); //使用push()方法在数组最后添加元素
document.write('使用push()方法添加后的数组:'+arr+'<br />');
document.write('使用pop()方法删除后的数组'+arr.pop()+'<br />'); //使用pop()方法删除数组最后一个元素
(3)unshif()和shif()从数组前面添加或者删除成员
var aRr =new Array('zxs','zxa','zxb');
aRr.unshift('szx','szz'); //在最前面添加元素
alert(aRr);
aRr.shift('szx'); //只能删除前面第一个元素
(4)reverse()将数组的数值进行翻转
var arr=new Array('html','css','JavaScript');
document.write('原有数组:'+arr+'<br />');
arr.reverse();
document.write('翻转之后的数组'+arr);
(5)indexof()元素第一次出现的索引值
var arr_01=[1,3,2,4,8,2,1,4];
alert(arr_01.indexOf(4));//返回索引值为:3
(6)splice()在数组中添加或是删除元素
splice(从第几个元素,删除几个元素,添加的元素)
var zaa=new Array('axs','azs','szx','wes','esx');
zaA=zaa.splice(1,2,'wsa');
document.write(zaa+"<br />"); //添加wsa'azs'和'szx'的位置
document.write(zaA); //呈现'azs'和'szx'
var arr_02=[1,2,3,4,5,6];
//语法:(start,删除几个元素,需要添加的元素)
arr_02.splice(2,1,7,8,9); 从第2个元素开始,删除1个元素,
//然后在此位置添加7,8,9
alert(arr_02); //返回:1,2,7,8,9,4,5,6
(7)slice() 从数组中选择(截取)元素
slice(索引数开始值,结束值) 包含开始不包含结束
var sza=['sxb','znm','wyu','aqo'];
sZa=sza.slice(1,3); // slice(开始位置索引数,结束位置) 包含开始,不包含结束
document.write(sZa);
var arr_03=[1,2,3,4,5,6];
document.write(arr_03.slice(4,5));//返回5
alert(arr_03.length);
4.数组数据的访问:
var arr=[1,2,3,4,5,6,'JavaScript'];
for (var i=0;i<arr.length;i++) { //i=0;0为索引数
//console.log(arr[i]);
document.write(arr[i]);
}
5.冒泡排序:
(1)比较相邻的两个元素,如果前一个比后一个大,则交换位置。
(2)第一轮的时候最后一个元素应该是最大的一个。
(3)按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个 元素已经是最大的了,所以最后一个元素不用比较
Var arr=[23,1,3,0,22,45,11,8];
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){//如果前面的数据比后面的大就交换
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
console.log("第"+(++times)+"次排序后:"+arr);
}
}
<script type="text/javascript">
var times=0;
var arr=[23,1,3,0,22,45,11,8];
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){//如果前面的数据比 后面的大就交换
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
console.log(" 第 "+(++times)+" 次 排 序 后 : "+arr);
}
}
</script>