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

    数组

    (1)、数组的定义

      数组是值的有序集合

      javascript数组是无类型的;数组元素可以是任意类型,并且同一个数组的不同元素也可能有不同的类型。

      每个值叫做一个元素,而每个元素在数组中有一个位置

    (2)、创建数组

    1.使用数组直接量是创建数组最简单的方式,在方括号中将数组元素用逗号隔开即可。

      eg:var empty = []; //没有元素的数组

      eg:var primes = [2,3,4,5,7]; //有5个数值的数组

      eg:var misc = [1.1,true,”a”,]; //有3个不同类型的元素和结尾的逗号 数组直接量中的值不一定要是常量,可以是任意的表达式。

      eg:var base = 1602;

           var table = [base+1,base+2,base+3];

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

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

          var undefs = [,,]; //数组有两个元素,都是undefined 数组直接量的语法允许有可选的结尾的逗号,故[,,]只有两个元素而非三个。

    2.调用构造函数Array()是创建数组的另外一种方法。可以用三种方式调用构造函数。

      ①调用时没有参数: var a = new Array();该方法创建一个没有任何元素的空数组,等同于数组直接量[]。

      ②调用时有一个数值参数,它指定长度: var a = new Array(10) 当预先知道所需元素个数时,这种形式的Array()构造函数可以用来预分配一个数组空间。

      ③显示指定两个或多个数组元素或者数组的一个非数值元素: var a = new Array(5,4,3,2,1,”test”); 以这种形式,构造函数的参数将会成为新数组的元素。使用数组字面量比这样使用Array()构造函数要简单多了。

    (3)、数组元素的读和写

      使用[]操作符来访问数组元素中的一个元素。数组的引用位于方括号的左边。方括号中是一个返回非负整数值的任意表达式。使用该语法既可以读,也可以写数组的一个元素。

    1.通过指定数组名以及索引号码,你可以访问某个特定的元素。Eg:mycars[0]

    2. 如需修改已有数组中的值,只要向指定下标号添加一个新值即可:Eg:mycars[0]="Opel";

    (4)、数组长度

      定义:length 属性可设置或返回数组中元素的数目。(从1开始)

      数组的 length 属性总是比数组中定义的最后一个元素的下标大

    1.  对于那些具有连续元素,而且以元素 0 开始的常规数组而言,属性 length 声明了数组中的元素的个数。

        数组的 length 属性在用构造函数 Array() 创建数组时被初始化。给数组添加新元素时,如果必要,将更新 length 的值。

        设置 length 属性可改变数组的大小。如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined。

    eg:[].length ==0

       [1,2,3].length ==3  

    (5)、检测是不是数组

    1.  运用instanceof运算符来判断一个对象是不是数组

         instanceof 是一个二元运算符,左边操作数是一个对象,不是的话返回false,右边操作数是一个函数对象或者函数构造器,不是的话返回false。原理是通过判断左操作数的对象的原型链上是否具有右操作数的构造函数的prototype属性。

    eg:arr instanceof Array

    2.  可以使用Array.isArray(arr) 

        这个ES5新增的一个Array方法,该方法是Array对象的一个静态函数,用来判断一个对象是不是数组。

  • 相关阅读:
    51nod1376 最长递增子序列的数量
    51nod1201 整数划分
    51nod1202 子序列个数
    51nod 博弈论水题
    51nod1052 最大M子段和
    51nod1678 lyk与gcd
    51nod1262 扔球
    BZOJ2763, 最短路
    吃西瓜 最大子矩阵 三维的。 rqnoj93
    noip2015 信息传递 强连通块
  • 原文地址:https://www.cnblogs.com/Coding--Peasant/p/7011092.html
Copyright © 2011-2022 走看看