zoukankan      html  css  js  c++  java
  • JS数组

    数组
      很多的数据的集合
    定义: 

    var arr = [];//定义
    var arr1 = [1,2,3];//定义并赋值

      数组元素:数组里面的值
      数组下标(索引)作用;指明元素在数组中的位置:从0开始;

      例子:

        arr[0]为取数组下标为0的第一个元素
      数组长度:arr.length

    数组方法:

      join()  //数组转字符串

    例子:

    var arr =[1,2,3,4];
    console.log(arr.join("-")); //1-2-3
    

     通过join()方法可以实现重复字符串,只需传入字符串以及重复的次数,就能返回重复后的字符串,函数如下:

    function repeatString(str, n) {
      return new Array(n + 1).join(str);
    }
    console.log(repeatString("abc", 3)); // abcabcabc
    

      

      push()pop()  //数组末尾的添加、删除

    push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。 
    pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。

    例子:

    var arr = ["Lily","lucy","Tom"];
    var count = arr.push("Jack","Sean");
    console.log(count); // 5
    console.log(arr); // ["Lily", "lucy", "Tom", "Jack", "Sean"]
    var item = arr.pop();
    console.log(item); // Sean
    console.log(arr); // ["Lily", "lucy", "Tom", "Jack"]

      shift()unshift()//第一个元素的添加上相互

    shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。 
    unshift:将参数添加到原数组开头,并返回数组的长度 。

    这组方法和上面的push()和pop()方法正好对应,一个是操作数组的开头,一个是操作数组的结尾。

    例子:

    var arr = ["Lily","lucy","Tom"];
    var count = arr.unshift("Jack","Sean");
    console.log(count); // 5
    console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
    var item = arr.shift();
    console.log(item); // Jack
    console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]

      sort()  //排序 1324=>1234

    例子:

    var arr1 = ["a", "d", "c", "b"];
    console.log(arr1.sort()); // ["a", "b", "c", "d"]
    arr2 = [13, 24, 51, 3];
    console.log(arr2.sort()); // [13, 24, 3, 51]
    console.log(arr2); // [13, 24, 3, 51](元数组被改变)
    

      

    为了解决上述问题,sort()方法可以接收一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回 0,如果第一个参数应该位于第二个之后则返回一个正数。以下就是一个简单的比较函数:

    function compare(value1, value2) {
      if (value1 < value2) {
        return -1;
      } else if (value1 > value2) {
        return 1;
      } else {
        return 0;
      }
    }
    arr2 = [13, 24, 51, 3];
    console.log(arr2.sort(compare)); // [3, 13, 24, 51]
    

    降序:

      

    function compare(value1, value2) {
        if (value1 < value2) {
          return 1;
        } else if (value1 > value2) {
          return -1;
        } else {
          return 0;
        }
    }
    arr2 = [13, 24, 51, 3];
    console.log(arr2.sort(compare)); // [51, 24, 13, 3]

      reverse()  //翻转 1234=>4321

    例子:

    var arr = [13, 24, 51, 3];
    console.log(arr.reverse()); //[3, 51, 24, 13]
    console.log(arr); //[3, 51, 24, 13](原数组改变)
    

      

      concat()  //链接数组

    例子:

    var arr = [1,3,5,7];
    var arrCopy = arr.concat(9,[11,13]);
    console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]
    console.log(arr); // [1, 3, 5, 7](原数组未被修改)
    

      

      slice()  //删除指定位置的元素

    例子:

    var arr = [1,3,5,7,9,11];
    var arrCopy = arr.slice(1);
    var arrCopy2 = arr.slice(1,4);
    var arrCopy3 = arr.slice(1,-2);
    var arrCopy4 = arr.slice(-4,-1);
    console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)
    console.log(arrCopy); //[3, 5, 7, 9, 11]
    console.log(arrCopy2); //[3, 5, 7]
    console.log(arrCopy3); //[3, 5, 7]
    console.log(arrCopy4); //[5, 7, 9]
    

    解释:

    arrCopy只设置了一个参数,也就是起始下标为1,所以返回的数组为下标1(包括下标1)开始到数组最后。 
    arrCopy2设置了两个参数,返回起始下标(包括1)开始到终止下标(不包括4)的子数组。 
    arrCopy3设置了两个参数,终止下标为负数,当出现负数时,将负数加上数组长度的值(6)来替换该位置的数,因此就是从1开始到4(不包括)的子数组。 
    arrCopy4中两个参数都是负数,所以都加上数组长度6转换成正数,因此相当于slice(2,5)。  


      splice()  //删除指定位置的元素

    删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。

    var arr = [1,3,5,7,9,11];
    var arrRemoved = arr.splice(0,2);
    console.log(arr); //[5, 7, 9, 11]
    console.log(arrRemoved); //[1, 3]
    

      

      indexOf() lastIndexOf()   //查找元素第一次出现的位置 返回下标 indexOf从第一个查 lastIndexOf从最后一个查

    例子:

    var arr = [1,3,5,7,7,5,3,1];
    console.log(arr.indexOf(5)); //2
    console.log(arr.lastIndexOf(5)); //5
    console.log(arr.indexOf(5,2)); //2
    console.log(arr.lastIndexOf(5,4)); //2
    console.log(arr.indexOf("5")); //-1
    

    数组遍历:

    var arr = ['zhangsan','wangwu','zhaoliu'];
    
    for(var i =0;i<arr.length;++i){
    		arr[i] = arr[i] +123;
    }
    //数组遍历 for(var i in arr){ arr[i]; }

      

    一维数组   二维数组  多维数组
      数组的元素是一个一维数组

      把一个数组当另一个数组的元素

    //二维数组
    var arr = []; arr.push([123,123,123]); arr.push([234,234,234]); console.log(arr);
    //结果为 [   [1231,1232,1233],   [234,234,234] ]
    //简写提取 arr[0][1]//0为选第一行数组的元素,1为选第一行数组的第二个元素

      

    数组例题:

     青歌赛打分、20位评委给一个选手打分、去掉一个最高分、去掉一个最低分求平均得分、去掉两个分

    var arr = [50,40,41,21,53,43,46,48];
    var max =arr[0];//最高分
    var min =arr[0];//最低分
    var sum =0;//总分
    for(var i=0;i<arr.length;++i){
        sum += arr[i];//各项的和
      //比较大小,交换
      //最高分 if(max< arr[i]){    max=arr[i];  } 
      //最低分
       if(min > arr[i]){    min = arr[i]; } }
    var avg = (sum-max-min)/(arr.length-2);//求平均分 console.log("平均分:"+avg+";最高分:"+max+";最低分:"+min);

     改错:

    4、HTML中、创建表格标签是   A

    A、<table>....</table>   B、<tr>...</tr>(行,表格元素)  C、<td>...</td>(列显示,表格元素)  D、<p>....</p>(段落)

    8、设置表格跨列显示的属性    B

    A、Rowspan(跨行纵向合并)  B、Colspan(跨列,横向合并单元格)  C、Rows (规定文本区域内可见的行数。)          D、cols(规定文本区域内可见的列数)

    9、用于在网页中创建表单的标签c

    A、<input>(表单元素)      B、<select>(单选元素)   C、<form>(表单标签)  D、<textarea>(多行文本)

    11、checked属性适用于哪个表单元素AB

    A、<input type=”radio”>(单选)  B、<input type=”checkbox”>(多选)

    C、<input type=”text”>(文本)  D、<input type=”button”>(按钮)

    13、哪些属性用于<textarea>标签AD

    A、Cols  (规定文本区域内可见的列数)        B、Size    C、Type     D、Rows(规定文本区域内可见的行数。) 

    下面关于列表属性描述正确的是D

    A、list-type-image可以使用图像代替列表项标记  list-style-image

    B、List-type可以设置列表项的类型      list-style-type

    C、List-position:inside标志表示项目标放在文本以外list-style-position:

    D、List-style可以吧列表所有属性设置与一个声明中

    24、可以隐藏元素的选项B

    A、display:block B、Display:none消失  C、display:hidden      改: visibility:hidden影响布局  D、display:hide

    反省:

      1.认真读题,看清题意。

      2.多思考,多做练习巩固。

      3.认真对待每一次考试,根据自己情况调整,看自己前进退步多少,多努力;

      4.慢慢养成每天做练习的习惯,写好总结,记好笔记,贵在持之以恒,笨鸟先飞,成功路上无捷径;

      5.多和同学交流,互换想法,汲取经验。

      6.每天拿出十分钟回顾之前学的,查看博客,笔记,多看一下资料教学; 

  • 相关阅读:
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 菜单与按钮
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 布局
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    雷林鹏分享:jQuery EasyUI 数据网格
    高考后的BB
  • 原文地址:https://www.cnblogs.com/lzw123-/p/9189542.html
Copyright © 2011-2022 走看看