《JavaScript面向对象编程指南》——2.5 数组

    xiaoxiao2024-01-23  149

    本节书摘来自异步社区《JavaScript面向对象编程指南》一书中的第2章,第2.5节,作者: 【加】Stoyan Stefanov 译者: 凌杰 更多章节内容可以访问云栖社区“异步社区”公众号查看。

    2.5 数组

    现在,我们对JavaScript中的基本数据类型已经有了一定的了解,是时候将注意力转向更有趣的数据结构——数组了。

    我们可以用一对不带任何内容的方括号来声明一个空数组变量,例如:

    >>> var a = []; >>> typeof a; "object"

    如您所见,typeof在这里返回的是“object”。建议您先别管这个,待我们重点讨论对象时再回头来说明这个问题。

    如果我们要定义一个带三个元素的数组,可以这样做:

    >>> var a = [1,2,3];

    只要在控制台中简单地输入数组名,就能打印出该数组中的所有内容:

    >>> a [1, 2, 3]

    那么,究竟什么是数组呢?简而言之,它就是一个用于存储数据的列表。与一次只能存储一个数据值的变量不同,我们可以用数组来存储任意数量的元素值。现在的问题是,我们应该如何访问数组中的各个数据值呢?

    通常,元素在数组中的索引位置是从0开始编号的。也就是说,数组首元素的索引值(或者说位置值)应该是0,第二个元素的索引值则是1,以此类推。表2-5中所显示的就是之前那个三元素数组实例中的具体情况。

    为了访问特定的数组元素,我们需要用一对方括号来指定元素的索引值。因此a[0]所访问的就是数组a的首元素,而a[1]则代表第二个元素,以此类推。

    >>> a[0] 1 >>> a[1] 2

    2.5.1 增加、更新数组元素我们可以通过索引来更新数组中的元素。例如在下面的代码中,我们更新了第三个元素(索引值为2)的值,并将更新后的数组打印出来:

    >>> a[2] = 'three'; "three" >>> a [1, 2, "three"]

    另外,我们也可以通过索引一个之前不存在的位置,来为其添加更多的数组元素。

    >>> a[3] = 'four'; "four" >>> a [1, 2, "three", "four"]

    如果新元素被添加的位置与原数组末端之间存在一定的间隔,那么这之间的元素将会被自动设定为undefined值。例如:

    >>> var a = [1,2,3]; >>> a[6] = 'new'; "new" >>> a [1, 2, 3, undefined, undefined, undefined, "new"]

    2.5.2 删除元素为了删除特定的元素,我们需要用到delete操作符。该操作符虽然不能真正移除一个元素,但它能将其设定为undefined。元素被删除后,数组的长度并不会受到影响。

    >>> var a = [1, 2, 3]; >>> delete a[1]; true >>> a [1, undefined, 3]

    2.5.3 数组的数组通常情况下,我们可以在数组中存放任何类型的值,包括另一个数组。

    >>> var a = [1, "two", false, null, undefined]; >>> a [1, "two", false, null, undefined] >>> a[5] = [1,2,3] [1, 2, 3] >>> a [1, "two", false, null, undefined, [1, 2, 3]]

    让我们来看一个例子,在下面的代码中,我们定义了一个含有两个数组的数组:

    >>> var a = [[1,2,3],[4,5,6]]; >>> a [[1, 2, 3], [4, 5, 6]]

    在该数组中,首元素a[0]本身也是一个数组。

    >>> a[0] [1, 2, 3]

    如果想要访问内层数组中的特定元素,我们需要再加一组方括号。例如:

    >>> a[0][0] 1 >>> a[1][2] 6

    另外值得注意的是,我们通过这种访问数组方式来获取某个字符串中的特定字符。例如:

    >>> var s = 'one'; >>> s[0] "o" >>> s[1] "n" >>> s[2] "e"

    除此之外,数组的使用方法还有很多(我们将会在第4章中详细介绍),现在先到此为止,请记住以下内容。

    数组是一种数据存储形式。数组元素是可以被索引的。数组中的元素索引是从0开始的,并且按照每个元素的位置依次递增。我们是通过方括号中的索引值来访问数组元素的。数组能存储任何类型的数据,包括另一个数组。

    相关资源:JavaScript高级程序设计
    最新回复(0)