JS第七讲--数组

七、数组

(一)数组导读

JS第七讲--数组

 

(二)数组及其创建方式

数组可以将相关的数据一起存放,并提供方便的访问。

创建数组的方法:

  1. 利用new关键字创建数组

    var arr=new Array();
  2. 利用数组字面量创建数组

    • 创建空数组

      var arr=[];
    • 创建带初始值的数组,可以任意数据类型共存

      var arr=['小白','大黑','大黄'];
      var arr1=[1,2,'liu',true]; //可以同时存放多种数据类型的数据

(三)访问数组元素

如果直接输出:

var arr=['小白','大黑','大黄'];
console.log(arr);

会返回所有元素.

索引(下标):用来访问数组元素的序号(数组下标从零开始)

console.log(arr[2]);

如果输出了没有的元素,会输出undefined

(四)遍历数组

一口气将所有元素取出来.

获取数组长度:arr.length,动态监测数组元素个数.

var arr=['小白','大黑','大黄'];
for(var i=0;i<arr.length;i++){
    console.log(arr[i]);
}

案例1:求数组[2,6,1,7,4]里面所有元素的和及平均值:

var nums = [2,6,1,7,4];
var sum=0;
for(var i=0;i<nums.length;i++){
    sum+=nums[i];
}
var average=sum/nums.length;
console.log(sum,average);

想要输出多个变量,用逗号分隔即可.

案例2:求数组[2,6,1,77,52,25,7]中的最大值

var nums=[2,6,1,77,52,25,7];
var max=nums[0];
for(var i=0;i<nums.length;i++){
    max=max<nums[i] ? max : nums[i];
}
console.log(max);

(五)数组新增元素

可以通过修改length长度以及索引号增加数组元素

  1. 修改length长度:

    var arr=['red','green','blue'];
    arr.length=5; //这时有两个空元素,为unfined
  2. 通过修改数组索引号,追加数组元素(直接追加)

    var arr=['red','green','blue'];
    arr[3]='pink';

注意:不要直接给数组名赋值,不然之前的数组就没了!!!

案例:筛选数组.要求将数组[2,0,6,1,77,0,52,0,25,7]中大于10的元素筛选出来,放入新数组

var arr=[2,0,6,1,77,0,52,0,25,7];
var nums=[]; //声明一个空数组
var count=0;
for(var i=0;i<arr.length;i++){
    if(arr[i]>10){
        nums[count]=arr[i];
        count++;
    }
}
console.log(nums);

这个要用到新变量,会有些麻烦,有一个更妙的解决方法:

length可以自动检测元素的变化

var arr=[2,0,6,1,77,0,52,0,25,7];
var nums=[]; 
for(var i=0;i<arr.length;i++){
    if(arr[i]>10){
        nums[nums.length]=arr[i];//length可以自动检测元素的变化
    }
}
console.log(nums);

妙啊!!!

(六)数组练习

  1. 删除指定的数组元素:

    要求将[2,0,6,1,77,0,52,0,25,7]中的0去掉后,形成一个不包含0的新数组

    var arr=[2,0,6,1,77,0,52,0,25,7];
    var nums=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=0) nums[nums.length]=arr[i];
    }
    console.log(nums);

  2. 翻转数组:

    要求将数组:['red','green','blue','pink','purple']的内容反过来存放

    var arr=['red','green','blue','pink','purple'];
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        newArr[newArr.length]=arr[arr.length-i-1];
    }
    console.log(newArr);

(七)冒泡排序

交换两个变量的值:(a和b),需要中间变量x

x=a;
a=b;
b=x;

冒泡排序:是一种算法,将一系列数据从小到大或从大到小排序.每次两两比较,将最大的放到数组最后.冒泡排序名字的来历时由于越小的元素会经交换,慢慢浮到数组上面.

  1. 一共需要交换的趟数,用外层for循环.

    五个数据需要交换4趟

  2. 每一趟的交换次数,用内层for循环.

    第一趟交换4次,第二趟交换2次...

将[5,4,3,2,1]从小到大排序:

var arr=[5,4,3,2,1];
var n=0;
for(var i=0;i<arr.length;i++){
    for(var j=0;j<=arr.length-i;j++){
        if(arr[j]>arr[j+1]){
            n=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=n;
        }
    }
}
console.log(arr);
上一篇:HTML(四)—表格


下一篇:Pr 入门教程「25」如何应用变形稳定器效果?