数组

为什么要使用数组?一次存储多个数据。

一、数组的概念:将多个元素(通常为同一类型)按一定的顺序排列放到一个集合中,我们称这个集合为数组。

二、数组的定义:数组是一个有序的列表,可以在数组中存放任意数据,并且数组的长度可以动态调整。

三、创建数组的方法:

        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);

标签: JavaScript