JavaScript——数组

Posted cc25802580

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript——数组相关的知识,希望对你有一定的参考价值。

一.数组的基本概念

    数组是值的有序集合,每一个值都叫做一个元素,而每个元素在数组中都有自己的位置,以数字表示,称为索引(从0开始标识)。

  在JS中,数组没有特定的类型,数组元素可以是任意类型并且同一个数组中的不同元素也可能有不同的类型。

  

 

二.创建数组

  1.创建数组有两个方法,但是使用数组直接量(或者数组字面量)是创建数组最简单的方法;

    1.1  数组直接量(数组字面量):在方括号中将数组元素用逗号隔开即可

      语法 : var 数组名 = [ 元素1,元素2,元素3,......]

      如果省略数组直接量中的某个值,省略的值将被赋予undefined值,例如:

          var  arr1 = [1,,3];                             //数组有3个元素,中间的元素值为undefined

          var  arr2 = [,,];                                 //数组有两个元素,都为undefined

            注:这里arr2里面有两个逗号,为什么不是三个元素而是两个元素?

              因为数组直接量的语法允许有可选的结尾的逗号,故arr2里面只有两个元素而不是三个。

    1.2  调用构造函数Array()

      ?  没有参数 :var  arr1 = new Array();   

       这里创建了一个没有任何元素的空数组(相当于数组直接量表示的 var arr1 = [ ])

 

         ?  一个参数 :var  arr2 = new Array(10);   

       这里创建了一个长度为10的数组

                    如果只有一个为整数的数值参数,那这个参数指定长度

 

      ? 两个或多个参数 :var  arr3 = new Array(1,2,3,"test","test");  

       如果有两个或多个参数,那传进来的参数就是这个数组的元素   

三.稀疏数组

   稀疏数组就是包含从0开始的不连续索引的数组。通常,数组的length属性值代表数组中的元素个数,如果数组是稀疏的,length属性值大于数组元素个数。

    可以用Array()构造函数或简单地指定数组的索引值大于当前的数组长度来创建稀疏数组。

    a = new Array(5);               //数组没有元素,但是a.length是5

    a = [ ];                                     //创建一个空数组,length为0

    a = [100];                                //赋值添加一个元素,但是length为101

  也可以用delete操作符来生产稀疏数组,此处不详细解释。

  足够稀疏的数组通常在实现上比稠密的数组更慢,内存利用率更高,在这样的数组中查找元素的时间与常规对象属性的查找时间一样长。

 

  注:在数组直接量中省略值时不会创建稀疏数组。省略的元素在数组中是存在的,值为undefined,这和数组元素根本不存在是有区别的。

       var  arr = [,,,];       //数组是[undefined,undefined,undefined];

    但是当这个数组使用连续的逗号时,比如[1,, 3],这时所得到的数组也是稀疏数组,省略的值并不存在。

 

四.数组长度

  每个数组有一个length属性,针对稠密数组(非稀疏数组),length属性值代表的是数组中的元素个数,其值比数组中最大的索引值大1。

    [ ]. length                               //   0     数组没有元素

    [‘a‘,‘b‘,‘c‘].length                     //   3     最大索引值为2,length为3

   

    

 

 

 

 

 

 

 

 

 

 

 

 

  

  

 

以上是关于JavaScript——数组的主要内容,如果未能解决你的问题,请参考以下文章

javascript 定义二维数组,两列,未知行数

javascript 动态删除数组

javascript三维数组怎么写?

JavaScript 将PHP数组转换为Javascript数组

javascript关联数组顺序混乱,怎么办?

javascript 从javascript中的多个数组中获取单个数组(合并数组)