复杂数据类型(数组)
今天主要整理了数组的基础知识,数组在js中用到的地方很多,所以初学者的同鞋们一定要掌握,多看资料。而且大的案例中经常用到遍历数组
数组
1、数组是复杂的数据类型(对象类型)
2、存储多个值会用到数组
3、复杂类型数据都是用new来创建的
4、 未赋值的项是undefined
定义数组
1、字面量定义
a) var array=[] //定义空数组
array[0]="爱国"
b) var array=[1,2,3]
c) var arrs=[3] 一个数字表示数组长度是1,值是3
2、对象创建定义数组
a) var arr1=new Array() //空数组
arr[2]="宝贝" //空数组赋值
b)var arr2=new Array( "关于","刘备","曹操")
c) var arr3=new Array(3) // 一个数字表示数组的长度, 都是未定义的空元素
数组元素
1、arr.length数组元素长度
2、arr[0] 通过索引值获取元素 /赋值
3、数组最开始的长度是0,每增加一个,arr.length自增(可以做索引)
4、数组的长度可以作为数组中最后一个新添加元素的索引值
数组的遍历
数组和for循环一起使用绝配
var arr=["我","爱","你","一","万","年"]; //遍历数组就是循环(获取)数组每一个值 for(var i=0; i<arr.length; i++){ //i代表数组的每一个元素 console.log(arr[i]); }//
遍历数组案例
//把1-10之间所以的奇数,放到数组中 //数组长度本身最开始是0,当每添加一个元素,数组自增1 //变量j可以用arr.length代替,因为初始化值是0, var arr=[]; // var j=0 for(var i=1; i<=10; i++){ if(i%2!==0){ arr[arr.length]=i; // j++; } } console.log(arr);
//1-10之间能被3整除的数字,存到数组中 var arr=[]; for(var i=1; i<=10; i++){ if(i%3===0){ arr[arr.length]=i; } } console.log(arr)
//求一组数组所有数和的平均值 var arr=[10,20,30]; //计数器思想 var sum=0; for(var i=0; i<arr.length; i++){ sum+=arr[i]; } console.log(sum); var avg=sum/arr.length; console.log(avg);
//求数组中最大值 var arr=[-10,-20,-30]; //比较的数使用数组里面的,(最好是第一个或是最后一个,) var max=arr[0];//max=arr.length-1 for( var i=1;i<arr.length; i++ ){ //可以少比较一次 让i=1 if(arr[i]>max){ //遍历数字,判断数组中每一项,如果比max大,赋值给max, max=arr[i]; } } console.log(max);
// 求一组数中的最大值和最小值,以及所在位置 var arr=[10,-20,30,40]; //定义最大值和最小值变量 还有他们的索引值变量 var maxValue=arr[0]; var minValue=arr[0]; var maxIndex=0; var minIndex=0; //求最大值 for(var i=1; i<arr.length; i++){ if(arr[i]>maxValue){ //把这个元素赋值给最大值,把对应的索引值付给minIndex maxValue=arr[i]; maxIndex=i; //求最小值 }else if(arr[i]< minValue){ //把这个元素赋值给最大值,把对应的索引值付给minIndex minValue=arr[i]; minIndex=i; } } console.log(maxValue); console.log(maxIndex); console.log(minValue); console.log(minIndex);
//将字符串数组用|,或其他符合分割 var arr=["吕超","赵云","典韦","关羽","马超","张飞"]; //为了避免第一个名字前面|,把第一个名字从数组中拿出来,保存到变量sum里 var sum=arr[0]; var aa="|"; for( var i=1; i<arr.length; i++){ sum+=aa+arr[i]; } console.log(sum)
//翻转数组 //思路:实现方法:1、定义一个新数组,把老数组中的元素从后往前添加到新数组中。 var arr=["刘备","关羽","张飞","诸葛亮","马超","黄忠","姜维"]; console.log(arr); var newArr=[]; //复杂版 for(var i=0; i<arr.length; i++){ //用新数组的长度作为索引值。给定数组的最大索引值,然后减去i 因为i自增 newArr[newArr.length]=arr[arr.length-1-i]; } console.log(newArr); //简单版 for(var j=arr.length-1; j>=0; j--){ newArr[newArr.length]=arr[j]; } console.log(newArr); //思路:实现方法;2、操作原数组,让原数组第一位和最后一位调换位置,以此类推。 for( var i=0; i<arr.length/2; i++){ //var temp=arr[i]; arr[i]=arr[arr.length-1-i]; //arr[ arr.length-1-i]=temp; } console.log(arr)