zoukankan      html  css  js  c++  java
  • js中数组的使用

      使用js时候,很多情况下要使用数组。就写写数组中一些常用的方法。

    js中定义一个数组,一般有以下2种方法。

    1. var arr = new Array(3); // 声明数组有3个元素

       arr[0] = 1;     arr[1] = 2;     arr[2] = 3;

       再比如这样  var arr = new Array("test"); // 数组中有个元素test

    2. var arr = [1,2,3,4];  // 这种方式更受推荐

    数组中有个重要属性length,就是数组元素个数,数组的长度。

    有个有趣的用法,比如声明数组中的第一种方法时,我定义了有3个数组元素的arr,这时我想再添加一个元素,这时可以使用length

    比如arr[arr.length] = 4;// 这就是在数组后,再追加一个元素

    有个值得注意的是,length这个属性,可能不是表面上你添加了几个元素就是几个。

    比如:

    var arr = [1,2,3];

    arr[9] = 11;

    这时可能你只给了4个元素,分别是1,2,3,11。但是length并不是4,而是10。但是你访问arr[3..]都是undefined,即arr[5] == undefined。

    检测一个变量是不是数组:

    一般使用

    if (arr instanceof Array){
      //
    }

    这个存在局限性,不过大多数情况下满足。比较新的市面浏览器现在支持这种方法:

    if (Array.isArray(arr)){
        //
    }

    常用的方法

    连接数组concat()

    var arr1 = [1, 2, 3];

    var arr2 = [3, 4, 5];

    var arr3 = arr1.concat(arr2);// [1,2,3,3,4,5]

    有个比较巧妙的克隆数组的方法:在concat()不填参数。比如:

    var arr4 = arr1.concat();// [1, 2, 3]

    转化成字符串:

    var arrToStr = arr.toString();// 这个是把各个元素以逗号分隔

    var arrToStr = arr.join(',');// join中传入逗号参数时,和上边的toString()效果一样。当然join可以传入其他分隔符

    数组模拟了数据结构中栈和队列的方法。稍微注意下每个方法的返回值

    比如模仿栈的方法,有push,pop。后进push先出pop

    队列的方法,有shift,unshift。从数组头部进入unshift,头部出去shift

    数组位置的查找方法,也是很常用的一个。现在流行的浏览器开始支持。也很容易理解。注意第二个参数的含义,表示从哪个位置开始查找,可以为负值。

    如果查不到,就返回-1

    var arr = [1,2,3,4,5,6,1,7];

    比如我要查找1的位置。

    arr.indexOf(1, 0);// 0

    arr.indexOf(1, 1);// 6

    arr.indexOf(1, -2);// 6

    arr.indexOf(1, -999);// 0 超过长度以后,负值就从0开始了,所以查到的还是第一个位置的1

    lastIndexOf()方法一样道理。

    现在的浏览器也支持一些迭代方法。比如map,filter,forEach等等。就不举例子了。

    另一个比较常用的方法slice。接收两个参数,start,end。取出数组中的一部分连续元素。这个方法会再生成一个子数组。

    再有一个数组很强大的方法隆重介绍哈哈。splice(); 支持数组的增删改。主要用途还是往数组中间插入元素。

    值得注意的是,这个方法区别于slice方法,它会改变原数组。

    var arr = [1,2,3,4,5];

    删除:传入2个参数,要删除第一项的位置(这里所说的位置都是指下标),和删除的项目数。比如

      arr.splice(2, 99);// [1,2]

    增加作用实际也算是修改了哈哈。如下:

    修改:传入3个参数,起始位置,删除的项目数(如果是增加作用,此处就写0),增加的项目(增加多个就写多个);这个就是splice()的主要作用---中间插入。

      arr.splice(2,1,7,8,9);// [1,2,7,8,9,4,5]   就是把元素3换成了7,8,9

    好了,数组常用的基本就这样了。

  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/firstForEver/p/5048334.html
Copyright © 2011-2022 走看看