数组(定义、遍历、冒泡排序、合并和Join 方法)
一、数组的定义
1.理解:数组指一组数据,有序的数据,可以一次性存储多个数据,将多个元素(通常统一类型)按照一定的顺序排列放到一个集合里
2.通过构造函数创建数组: var 数组名=new Arrary( )
var arr=new Array();
注:括号里如果是1个数字,代表数组的长度是这个数字,就是里面有多少个元素;
括号里如果有多个数字,代表的就是元素本身。
var arr=new Array(5); console.log(arr);//(5) [empty × 5]表示5个空元素
var arr=new Array(5,1,10); console.log(arr);//(3) [5, 1, 10]表示3个元素:5,1,10
3.通过字面量的方式创建数组 var 数组名=[ ]
var arr=[1,2,3,4,5];
4.注意
- 如果定义的数组没有长度,那么默认是undefined;
var arr=[]; console.log(arr[1]);//undefined
- 数组长度代表的是元素的个数,通过数组名.length获取数组长度(元素个数)
var arr=[1,2,3,4,5]; console.log(arr.length);//5
- 数组的下标(索引)是从0开始的
var arr=[1,2,3,4,5]; console.log(arr[0]);//1 console.log(arr[1]);//2 console.log(arr[4]);//5
- 数组里面的数据类型可以不一样,但是通常都是一样的,方便操作
var arr=[1,"前端",2]; console.log(arr[0]);//1 console.log(arr[1]);//前端
- 数组的长度可以改变,通过索引来设置数组中的元素的值
var arr=[]; console.log(arr.length);//0 arr[0]=1; arr[1]=4; arr[2]=5; console.log(arr);//(3) [1, 4, 5] console.log(arr.length);//3
二、数组的遍历:for循环
var arr=[10,20,30,40,50]; for(var i=0;i<arr.length;i++){ console.log(arr[i]);//10 20 30 40 50 }
运用例子:
//例1:数组中所有元素的和 var arr=[10,20,30,40,50]; var sum=0; for(var i=0;i<arr.length;i++){ sum+=arr[i]; } console.log(sum);//150
//例2:数组中元素的平均值 var arr=[10,20,30,40,50]; var sum=0; for(var i=0;i<arr.length;i++){ sum+=arr[i]; } console.log(sum/arr.length);//30
//例3:数组中的最大值和最小值 var arr=[10,20,30,40,50]; var max=arr[0]; var min=arr[0]; for(var i=0;i<arr.length;i++){ if(max<arr[i]){ //最大值 max=arr[i]; } if(min>arr[i]){ //最小值 min=arr[i]; } } console.log(max);//50 console.log(min);//10
//例3:数组拼接字符串输出 var arr=[10,20,30,40,50]; var str=""; for(var i=0;i<arr.length;i++){ if(i==0){ str+=arr[i]; }else{ str+="|"+arr[i]; } } console.log(str);//10|20|30|40|50
//例4:去掉重复的0 var arr=[1,0,5,0,9,0,10]; var newArr=[]; for(var i=0;i<arr.length;i++){ if(arr[i]!=0){ //利用新数组的长度巧妙的解决 newArr[newArr.length]=arr[i]; } } console.log(newArr);//(4) [1, 5, 9, 10]
//例5:求数组的反转数 var arr=[10,40,50,20,30]; for(var i=0;i<arr.length/2;i++){ temp=arr[i]; arr[i]= arr[arr.length-1-i]; arr[arr.length-1-i]=temp; } console.log(arr);//(5) [30, 20, 50, 40, 10]
三、冒泡排序:把所有的数据按照一定的顺序进行排列
// 冒泡排序(从小到大) var arr=[50,40,30,20,10]; for(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(arr);//(5) [10, 20, 30, 40, 50]
//冒泡排序(从大到小) var arr=[10,20,30,40,50]; 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]){ //交换变量 temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } console.log(arr);//(5) [50, 40, 30, 20, 10]
四、数组合并:使用concat方法合并数组
//数组合并 var ary1=[22,33,44,55,66]; var ary2=["文件","编辑","查找","调试"]; var ary3=ary1.concat(ary2); console.log(ary3);//(9) [22, 33, 44, 55, 66, "文件", "编辑", "查找", "调试"]
五、Join 方法 返回一个字符串
// 数组连接符join,返回一个字符串
var ary4=[12,34,56,"前端","abc"];
var ary5=ary4.join("&");
document.write(ary5+ "<br>" +"返回的数据类型是:" + typeof(ary5))
// 数组连接符join,返回一个字符串 var ary1=[12,34,56,"前端","abc"]; var ary=ary1.join("&"); console.log(ary);//12&34&56&前端&abc console.log(typeof(ary));//string
【转载文章务必保留出处和署名,谢谢!】