复杂数据类型(数组)

今天主要整理了数组的基础知识,数组在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)
原文地址:https://www.cnblogs.com/wdz1/p/7230349.html