数组的基础知识

数组:一组有序的数据
数组的作用:一次性存储多个数据
数组的定义:
  1.通过构造函数的方式创建数组
  var 数组名=new Array();
  var number=new Array();
  数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来;如果没有数据就看不到数据
  var 数组名=new Array(长度);
  如果数组中没有数据,但是有长度---数组中的每个值都是undefined
  构造函数的方式创建数组的时候,如果在Array(一个数字)--->数组的长度(数组元素的个数)
  如果在Array(多个值);这个数组中就有数据了,数组的长度就是这些数据的个数

  2.通过字面量的方式创建数组
  var 数组名=[];//空数组
  var array[];
  无论是构造函数的方式还是字面量的方式,创建的数组,如果有长度,那么默认是undefined
  数组的索引(下标)和数组的长度的关系:长度减1就是最大的索引值

    * 如何设置数组中某个位置的值?
    * 数组名[下标]=值;
    * arr[3]=100;
    * 如何获取数组中某个位置的值?
    * var result=数组名[下标];
    * console.log(result);
    
    获取数组长度的方法:数组名.length
    var arr=[10,20,30,40,50,60,70,80,10,20,3043,5];
    console.log(arr.length);
 
    注意:
    1.数组中存储的数据类型是可以不一样
    var arr=[10,"哈哈",true,null,undefined,new Object()];
    console.log(arr);
    2.数组的长度是可以改变
    var arr=[];
    通过索引来设置数组中的元素的值
    arr[0]=10;
    arr[1]=20;
    console.log(arr.length);

数组案例

1.数组遍历
var arry=[1,2,3,4,4,55,5554];
    for(var i=0;i<arry.length;i++){
        console.log(arry[i]);
    }
2.把数组中每个元素用|拼接到一起产生一个字符串并输出
var arry=["w","e","s","f"];
    var str="";
    for(var i=0;i<arry.length-1;i++){
         str=str+(arry[i]+"|");
    }
    console.log(str+arry[arry.length-1]);
3.去掉数组中重复的0,把其他的数据放在一个新的数组中
var arr = [10, 0, 20, 0, 30, 0, 50];
    var str=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=0)
            //把新数组的长度作为下标使用,数组的长度是可以改变的
            str[str.length]=arr[i];
    }
    console.log(str);    
4.反转数组---把数组中的数据的位置调换
var num=[23,34,56,21,32,43];
    for(var i=0;i<num.length/2;i++){
        var temp;
        temp=num[i];
        num[i]=num[num.length-i-1];
        num[num.length-i-1]=temp;
    }
    console.log(num);  
4.提示用户输入班级人数,求总成绩,平均值,最高分,最低分(分开求)     
    //提示用户输入人数,并转成数字类型
    var perCount = parseInt(prompt("请输入班级人数"));
    //定义数组存储班级的每个人的成绩
    var perScores = [];
    //循环的方式录入每个人的成绩
    for (var i = 0; i < perCount; i++) {
        //把每个人的成绩存储到数组中
        perScores[perScores.length] = parseInt(prompt("请输入第" + (i + 1) + "个人的成绩:"));
    }
    console.log(perScores);
    //求总成绩
    var sum = 0;
    var avg = 0;//平均值
    var max=perScores[0];//最大值
    var min=perScores[0];//最小值
    for (var i = 0; i < perScores.length; i++) {
        sum += perScores[i];//求和
        //求最大值
        if(max<perScores[i]){
            max=perScores[i];
        }
        //求最小值
        if(min>perScores[i]){
            min=perScores[i];
        }
    }
    //平均值
    avg = sum / perScores.length;
    console.log("和为:"+sum);
    console.log("平均值:"+avg);
    console.log("最大值:"+max);
    console.log("最小值:"+min)
5.冒泡排序:把所有的数据按照一定的顺序进行排列(从小到大,从大到下)
 var arr = [10, 0, 100, 20, 60, 30];
    //循环控制比较的轮数
    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(arr);