zoukankan      html  css  js  c++  java
  • js语法基础入门(7)

    7.数组

    7.1.什么是数组以及相关概念?

    什么是数组?是一组数据有序排列的集合。将一组数据按一定顺序组织为一个组合,并对这个组合命名,这样便构成了数组。

    什么是数组元素?组成数组的每一个数据称为数组的一个数组元素。

    什么是数组索引?每一个数组元素对应一个整数值,称为数组元素索引,或者数组元素下标。元素索引为非负整数,由0开始依次增加,即第一个元素索引为0,依次为1,2等。

    什么是对数组元素的访问?对数组中各个元素,使用数组名加上以方括号”[ ]”括起来的元素索引进行访问。元素索引为元素在数组中的位置序号。

    数组长度是什么鬼?数组元素的个数称为数组的长度。

    如何创建数组?

    创建数组语法格式:

    var arr = new Array(); //创建一个空数组
    var arr2 = new Array(1,25,37,46,95);//创建一个具有5个元素的数组
    

    以上两种写法可以简写

    var arr3 = []//创建空数组
    var arr4 = [1,25,37,46,95];//创建一个具有5个元素的数组
    

    7.2.什么时候用到数组

    需要将多个类型一样的数据一次性告诉计算机让其保存时使用数组类型。 例如:告诉计算机保存一个班的成绩

    var arr = [98,34,45,67,34,23,68,45,75,78];
    

    告诉计算机保存一个班的年龄,姓名

    这里要用二维数组表示

    var arr = [
        ["小明",‘24’],
        ["小红",‘23’],
        ["小花",‘22’],
        ["小莉",‘25’],
        ["小刚",‘22’],
    ]
    

    7.3.数组的操作

    获取数组中的某个元素

    //语法:数组变量名[索引值]
    var  arr = [98,34,45,67,34,23,68,45,75,78];
    //如果要获取上面数组中的第三个元素45 
    console.log(arr[2]);//根据对应的下标来获取,数组的下标(索引)从0开始
    //如果没有对应的下标,返回的值为undefined
    console.log(arr[100]);//输出undefined  找不到下标100
    

    获取数组的长度

    语法:数组变量名.length;
    //定义数组
    var  arr = [98,34,45,67,34,23,68,45,75,78];
    //打印数组长度
    console.log(arr.length);//10
    

    删除数组中的元素

    语法:delete  数组变量名 [索引]
    //定义数组
    var  arr = [98,34,45,67,34,23,68,45,75,78];
    //删除第二项
    delete arr[2];
    

    注意:使用delete删除数组元素与为其赋值为undefined类似,并不会修改length属性 。

    //如果要清空数组可以这样写
    arr = [];//将arr值赋值为空
    或者
    arr.length = 0;//将arr的长度设置为0
    

    修改数组元素

    语法:数组变量名称[索引] = 值
    var names = ['张三','李四','王五'];
    names[2]="坂田赖";//将names数组第二项修改掉
    console.log(names);//['张三','李四','坂田赖'];
    

    添加元素

    语法:数组变量名称[数组长度] = 值
    var names = ['张三','李四','王五'];
    //增加元素
    names[3] = "坂田三赖";
    //上一条语句增加了一个元素,此时names长度为四
    names[names.length] = "苍井老师";//在数组末尾增加元素
    

    总结:数组操作中,常用的就是获取数组元素,修改元素其实就是先去找到对应的元素然后重新赋值的过程,增加元素可以直接用arr[arr.length] = “值” 搞定,对于数组的操作,数组本身会有很多好用的方法(函数),可以供我们直接调用

    7.4.数组的遍历(重点)

    什么是数组的遍历?所谓数组的遍历就是挨个取出数组中每个下标对应的每一项。

    遍历数组有什么用?数组是一组数据的有序集合,我们可以用数组可以装一组或者多组数据,例如,学生表、成绩表、商品表、城市表等等,当我们需要将数组里面的数据展示出来的时候,就需要遍历数组,把数组里面的每一项都取出来,当我们想知道某个学生是否在校的时候,也要把学生表里面的数据遍历出来对比,因此,数组遍历在编程中非常重要,属于必须掌握的内容。

    怎样遍历数组?遍历数组也就是每次去取数组里面的元素,前面我们已经学过怎样取数组里的某一个元素和怎样获取数组的长度,那么每次取一个元素属于重复动作,我们可以使用for循环来遍历数组,例如

    //for循环遍历数组
    语法结构:
    for(var i = 0; i< 数组变量.length;++i){            
        var 元素变量 =  数组变量[i];
    }
    
    //>1.定义数组
    var  arr = [98,34,45,67,34,23,68,45,75,78];
    //>2.循环遍历
    for(var i=0;i<arr.length;i++){
        var val = arr[i]
        console.log(val);//循环一次打印一个元素出来
    }
    

    除了循环遍历数组以为,还有一个语句用于专业遍历数组的,哪就是for in 语句

    for…in语法结构:

    for(var i in 数组变量){ 
        var 元素变量 =  数组变量[i];
    }
    
    //>1.定义数组
    var  arr = [98,34,45,67,34,23,68,45,75,78];
    //>2.for in 遍历数组
    for(var i in arr){
        var val = arr[i];
    }
    

    总结:for循环和for in都可以用来遍历数组,for in遍历数组,还可以遍历对象,后面会学到,for in的写法也比较简单,代码简洁一些,如果写习惯了for循环估计有点不适应,但是必须得掌握,这里要强调得一点小细节就是,for循环中定义得变量i 属于数字类型,而for in中定义得变量i属于字符串类型

    练习一 数组为:[1,3,5,7,24,32,25,48] 1.求数组奇数的个数和偶数的个数 2.求出上面数组的平均值

    练习二 设计一个数组中的最大值的功能 [1,3,5,79,11] [-3,-5,-7,-121];

    7.5.什么是二维数组?

    首先,二维数组属于数组,那么就满足数组所有的特点,从本质上说二维数组和一维数组的区别就是,一维数组里面的每个元素是一个具体的值,而二维数组里面的每个元素是一个一维数组,也就是说二维数组类似于嵌套,在数组中放数组。

    怎样定义二维数组?二维数组定义和一维数组一样,有两种方式

    //>>1 定义几个一维数组
    var arr1 = [1,2,3,4];
    var arr2 = [5,6,7,8];
    var arr3 = [9,10,11,12];
    //>>2 将一维数组放到二维数组中
    var arr =[arr1,arr2,arr3];//arr中又装了几个数组,这里arr就是是二维数组
    //>>3 一次性定义一个二维数组
    var arr = Array(
        Array(98,34,45),
        Array(95,24,43),
        Array(68,324,455)
    );
    //>>4、简写上面数组,简写形式定义:
    var arr = [
        [98,34,45],
        [95,24,43],
        [68,324,455]
    ]
    

    7.6.二维数组使用在哪里

    数组就是有限个元素按一定顺序排列的集合,如果该数据集合又处于另外一个数据集合中,那么就可以使用二维数组来表示. 例如,一个小组的学生成绩:

    每个学生的成绩使用一维数组表示,当一个小组的学生成绩必须再使用一个数组存放每个学生成绩的数组.如下:

    //>>1 定义数组来装每个人到信息
    var zhang = [80,92,92];
    var wang = [61,65,71];
    var li = [59,63,70];
    var zhao = [85,87,90];
    var zhou = [76,77,85];
    //>>2 小组成绩:
    var group = [zhang,wang,li,zhao,zhou]
    //>>3 用简写形式定义:
    var group = [
            [80,92,92],
            [61,65,71],
            [59,63,70],
            [85,87,90],
            [76,77,85]
    ];
    

    总结:数组到好处就是可以将一堆到数据有序到存储起来,遍历数组又比较简单,所以数组存取数据相当好用,尤其是学习了后段语言,接触到数据库的时候,数据中的表查询出来大多数情况都是二维数组,因此,数组必须学好

    7.7.二维数组操作

    二维数组的操作和一维数组相似,都可以对数组进行增删查改,不同的是查找元素的时候,需要往内层多查找一次。也就是说要找某个元素,必须先找到是二维数组里面多哪个数组,再根据这个数组找到里面对应到值

    怎样访问二维数组中具体的元素?

    //需求:将group数组中第一个元素80 打印出来
    var group = [
        [80,92,92],
        [61,65,71],
        [59,63,70],
        [85,87,90],
        [76,77,85]
    ]
    console.log(group[0]);//这里访问到group数组里到第一个元素,但是是一个数组,不是具体到值
    console.log(group[0][0])//根据上一个数组group[0],找数组下标为0的值就是80
    

    总结:group[x] : 访问到二维数组中索引为x数组类型的元素 group[x][y]: 访问到二维数组中索引为x数组类型的元素,然后再通过y访问到数组类型元素中具体一个元素

    怎样向二维数组中添加元素?

    //>>1 定义一个二维数组
    var group = [
        [80,92,92],
        [61,65,71],
        [59,63,70],
        [85,87,90],
        [76,77,85]
    ];
    //>>2 向二维数组中追加一个数组
    group[5] =  [11,12,13];
    //>>3 向二维数组中的小数组追加一个值
    group[5][4] = 99;
    //>>4 打印新追加的元素
    console.log(group[5]);
    

    怎样修改数组中的元素?

    //需求:将group数组中的第一个元素80 修改为90
    //>>1 定义一个二维数组
    var group = [
        [80,92,92],
        [61,65,71],
        [59,63,70],
        [85,87,90],
        [76,77,85]
    ];
    //>>2 找到第一个元素,并且赋值
    group[0][0] = 90;
    //>>3 打印出数组
    console.log(group); 
    //此时可以在控制台查看 group[0][0]已经变成90
    

    总结:其实数组元素的添加修改都非常简单,本质上都是给对应的下标赋值,如果没有对应的下标,那此次操作就是向数组添加元素,如果有对应下标,那就是修改元素

    7.8.二维数组遍历

    二维数组的遍历也比较简单,要理解的话需要分两步,上面我们说遍历一维数组需要用循环或者for in,如果是一维数组,那么经过一次循环遍历出来的就是每一个具体的值,二维数组经过循环以后,得到的每一个值是一个数组,因此,我们还要在这个数组的基础上再执行一次遍历,也就是说二维数组实际上是要做两次循环

    //需求:将二维数组中的元素遍历出来
    var group = [
        [80,92,92],
        [61,65,71],
        [59,63,70],
        [85,87,90],
        [76,77,85]
    ];
    //>>1 外层循环遍历出group中的每个小数组
    for(var i=0;i<group.length;i++){
        //这里group[i] 就是一个数组
        //2 得到数组 group[i] 再将小数组里面的元素遍历出来
        for(var j=0;j<group[i].length;j++){
            //打印出小数组中的元素
            console.log(group[i][j]);
        }
    }
    //>> 使用for in 遍历二维数组
    //>>1 外层循环遍历的得出的结果是数组 group[i]
    for(var i in group){
        //>> 2 在数组group[i]的基础上再做一次遍历
        for(var j in group[i]){
            //>>3 打印出小数数组的元素
            console.log(group[i][j]);
        }
    }
    

    总结:数组遍历是对循环对应用,如果不清楚循环结构,请查看前面流程控制对内容,数组的遍历经常会用到,属于必须掌握到内容,二维数组的遍历就是一个循环嵌套的问题,搞清楚循环嵌套,问题就迎刃而解。

    螺钉课堂视频课程地址:http://edu.nodeing.com

  • 相关阅读:
    Springboot导入freemarker模板
    IDEA卡在 Downloading plugins for .....
    安装配置CURL命令行工具
    Spring-boot在IDEA中实现热部署
    强制类型转换
    Raphael.js最基本绘制示例代码
    Raphael.js最基本绘制示例代码
    Raphael.js API之Element.unXXX(),Paper.getElementByPoint(),Paper.getElementsByPoint(),vee(),Element.ge
    Raphael.js API之Element.unXXX(),Paper.getElementByPoint(),Paper.getElementsByPoint(),vee(),Element.ge
    Raphael.js API之Element.mousedown(),Element.mousemove(),Element.mouseup(),Element.mouseout(),Element.
  • 原文地址:https://www.cnblogs.com/dadifeihong/p/12027727.html
Copyright © 2011-2022 走看看