JavaScript学习笔记(三、数组)
数组
为什么要使用数组?一次存储多个数据。
一、数组的概念:将多个元素(通常为同一类型)按一定的顺序排列放到一个集合中,我们称这个集合为数组。
二、数组的定义:数组是一个有序的列表,可以在数组中存放任意数据,并且数组的长度可以动态调整。
三、创建数组的方法:
1、通过构造函数创建数组:
var arr = new Array();//创建空数组 var arr1 = new Array(5);//括号里面只有一个数字表示创建长度为5的数组,里面每个元素都是undenfined var arr2 = new Array(10,20,30);//创建长度为3的数组,里面的元素分别是10,20,30
2、通过字面量创建素组:
var arr3 = []; //创建空数组 var arr4 = [20,4,22,9];//创建长度为4的数组
四、获取与设置数组元素的方法:
数组元素:就是数组中存储的数据;
数组长度:就是数组中存储数据的个数,获取数组长度用:数组.length;
数组下标(索引):从0开始,到数组的长度减1结束;
通过数组下标(索引)获取或设置或新增数组元素值。
var arr5=[]; arr5[0]=10;//设置数组arr5的第一个值为10,格式:数组名[下标] arr5=[1]=20;//设置数组arr5的第二哥值为20 console.log(arr5); console.log(arr5.length);//获取数组arr5数组的长度
五、遍历数组:
遍历:遍及所有,对数组的每个元素都访问一次就叫遍历。
遍历数组的基本语法: for(var i=0;i<数组名.length;i++){ console.log(数组名[i]); }
案例:
//1、求一组数中的所有数的和和平均值 var arr = [10,20,30,40,50]; var sum = 0; var average = 0; for(var i=0;i<arr.length;i++){ sum+=arr[i]; } average=sum/arr.length; console.log("数组的和为"+sum); console.log("数组的平均值为"+average); //2、求一组数中的最大值和最小值,以及所在位置 var arr2 = [10,30,50,100,287,2,4,5,1,9]; var max = arr2[0]; //存储最大值 var maxLocation = 0; //存储最大值位置 var min = arr2[0];//存储最小值 var minLocation = 0;//存储最小值位置 for(var i = 0;i < arr2.length;i++){ //获取最大值 if(max < arr2[i]){ max = arr2[i]; maxLocation = i+1; } //获取最小值 if(min > arr2[i]){ min = arr2[i]; minLocation = i+1; } } console.log("最大值为:"+max+"是数组中的第"+maxLocation+"个元素"); console.log("最小值为:"+min+"是数组中的第"+minLocation+"个元素"); //3、将字符串数组用|或其他符号分割 var arr3 = ["小苏","你好帅","你好有型"]; var str = ""; for(var i = 0;i < arr3.length;i++){ if(i<arr3.length-1){ str + = arr3[i] + ","; continue; } str + = arr3[i]; } console.log(str); //4、要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组 var arr4 = [20,0,26,87,67,3,0,8,3]; var arr5 = []; var j = 0;//arr5的下标 for(var i = 0;i< arr4.length;i++){ if(arr4[i] !== 0){ arr5[j] = arr4[i]; j++; } } console.log(arr5); //5、翻转数组 var arr6 = [23, 32, 44, 55, 6663, 33, 11]; for (var i = 0; i < arr6.length / 2; i++) { var temp = arr6[i] arr6[i] = arr6[arr6.length - 1 - i]; arr6[arr6.length - 1 - i] = temp } console.log(arr6); //6、冒泡排序,从小到大 var arr7 = [33, 24, 64, 87, 299, 222,2, 111, 44, 77, 21]; var temp;//用来交换位置 //比较arr7.length-1轮数 for (var j = 0; j < arr7.length; j++) { //每一轮的比较次数减少1次 for (var i = 0; i < arr7.length - 1 - j; i++) { //第i个数与第i加1给数比较,大则交换位置 if (arr7[i] > arr7[i + 1]) { temp = arr7[i]; arr7[i] = arr7[i + 1]; arr7[i + 1] = temp; } } } console.log(arr7);