JS数组及使用方法

一.概念

    数组对象的作用是:使用单独的变量名来存储一系列的值。

二.创建

    构造函数的方法
      var arr = new Array()
      var arr = new Array(5)
      var arr = new Array("宝宝")
    字面量的方法
      var arr = [];
      var arr = ["宝宝","大可爱"];

三.数组的length属性

    1.length:表示数组的长度,就是数组中元素的个数。
    2.索引:也叫做下标,是数组中元素的序号,从0开始,最大下标是数组的长度-1;
        使用方式: 数组名[下标];

四.数组的遍历

    方法1:
      for(var i=0;i<arr.length;i++){
          console.log(arr[i]);
        }
    方法2:
      for(var i in arr){
          console.log(arr[i]);
        }

    


    两种方式的区别:

      a.循环数组

        for in 循环给循环变量赋值为字符串类型,for in循环必须把所有的元素要循环一遍, 普通的for循环给循环变量赋值为数字类型,普通的for的循环,可以控制循环哪些元素。更加的灵活.

      b.循环对象

        for in循环可以循环对象 普通for循环,没法直接循环对象。

五.数组的常用函数

  1.给数组添加元素:push(), unshift(),splice()
    a.push:添加元素:在数组的末尾增加一个元素
      var arr = ['Damon','girl','boy'];
      arr.push('宝宝'); //修改后的数组为['Damon','girl','boy','宝宝']
    b.unshift():添加元素: 在数组的开始添加
      var arr = ['Damon','girl','boy'];
      arr.unshift('宝宝'); //修改后的数组为['宝宝','Damon','girl','boy']
    c.splice():既可以添加元素,也可以删除元素,而且可以在在指定下标删除、添加
      var arr = ['Damon','girl','boy','tree','fire','water','zero-one'];
      arr.splice(2,0,"宝宝"); //在下标2的位置插入了 宝宝
      //数组变为['Damon','girl','宝宝','boy','tree','fire','water','zero-one']
      arr.splice(2,1,"大宝");//把原下标为2的元素删除,插入宝宝
      //数组变为['Damon','girl','大宝','boy','tree','fire','water','zero-one']
      arr.splice(2,3,"小宝");//从下标2开始删除3个,在下标2的位置插入宝宝
      //数组变为['Damon','girl','小宝','fire','water','zero-one']


  2、从数组中删除元素:pop(), shift(),splice()
    a.pop():删除元素:删除数组里最后一个元素,返回值就是被删除的元素
      var arr = ['Damon','girl','boy'];
      arr.pop(); //修改后的数组为['Damon','girl']
    b.shift(): 删除元素: 在数组的开始删除
      var arr = ['Damon','girl','boy'];
    arr.shift(); //修改后的数组为['girl','boy'];


  3.修改数组中的元素:splice(),reverse(),sort()
    a.reverse:把数组的元素进行翻转
      var arr = ['1','2','3'];
      arr.reverse();
      console.log(arr) //输出结果为3 2 1
    b.sort():排序
      var arr = [9, 6, 5, 7, 11, 52, 15];
      arr.sort(); //修改后的数组为[5,6,7,9,11,15,52]
        以上是针对单纯的整数数组,当数组的元素为对象时,则可能需要根据对象的属性进行排序.


  4.从数组中查询:slice()
    从数组里取出一部分元素(根据起始下标和结束下标)
      var arr = [9, 6, 5, 7, 11, 52, 15];
      arr.slice(2,5) //修改后的数组为[5,7,11,52]

      注意:和splice区分开


  5.concat();//拼接数组,把两个数组拼接起来,也可以拼接元素 concat():可以给数组的末尾增加元素,但是cancat并不会改变原始的数组,concat的返回值是添加元素后的结果


 

六.经典排序

1.冒泡排序

function fn(){
    var arr=[5,3,7,1,2,8,3,1];
    // 需要5轮,分别拿出剩下的数中的最大的,最后一个数,就不用管了。
    for(var i=0;i<arr.length-1;i++){
        // console.log("i",i);
        for(var j=0;j<arr.length-1-i;j++){
            // console.log("j",j);
            if(arr[j]>arr[j+1]){
                // 交换
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    console.log(arr);
}

2.选择排序

function fn(){
    var arr=[5,3,7,1,2,8];

    // 一共找出五个最小的数,最后一个不用管了,所以,六个数,循环5次。
    for(var i=0;i<5;i++){   
        // i=0   
        //1、找最小数
        var min = arr[i];
        var index = i;//index是最小数的下标
        // 循环到底
        for(var j=i+1;j<=5;j++){
            if(arr[j]<min){
                min = arr[j];
                index = j;
            }
        }

        //2、交换(数组中的最小数和arr[i])
        var t = arr[i];
        arr[i] = arr[index];
        arr[index] = t;
    }
    console.log(arr);
}

七.个人总结

    数组是有名字的一组数据有序排列的集合,是一种引用类型;数组中可以存放各种数据,如字符串类型、数字类型、布尔值、undefined或null,当然,数组的元素也可以没有,此时的数组就是一个空数组;数组的长度用length表示,length的值会随着数组元素的变化而变化,注意下标是从0开始的。

 

posted @ 2020-03-27 21:57  我们不是主角  阅读(589)  评论(0)    收藏  举报