第十二章:第9节JavaScript对象——数组

更新于:2017-10-27 14:39:01

PHP数组在编程中是非常重要的,大部分编程语言都有数组这种数据结构,JS也不例外。前面我们在介绍数据类型时,没有提到数组,这是因为JS的数组也是对象


数组:是复合数据类型,是一个变量名中可以存储多个值


var arr = [10,20,30,40,50];


数组的概念:一组数有序排列的集合。


数组元素:数组中的每个值(值的类型不限),就称为一个“数组元素”。


数组索引:数组中的每个值都有一个“编号”,通过这个“编号”来访问数据中某个值。那么,这个“编号”就是索引号。索引号是从0开始的正整数,依次递增。也就是说:第1个元素的索引是0,第2个元素的索引是1,第3个元素的索引是2,依次类推。


数组元素的访问:通过数组名称,紧跟一个中括号“[ ]”,“[ ]”中是元素的索引号,通过这种方式来访问数组中的元素。例如:arr[0] = 10,arr[1] = 20,arr[arr.length-1] = 50


提示:一个数组中第1个元素的索引号为0,那么最后一个元素的索引号为“长度-1”


数组的长度:是指数组中元素的总个数,通过array对象的length属性来实现。

            

在JS中,任何数据类型的变量,都可以看成是一个“对象”。


那么,“对象”有什么特征呢?对象由“属性”和“方法”构成。


属性是静态的特性:人有姓名、年龄、学历等特征。

方法是对象的行为:人骑自行车、打如球、跑步。

同理,计算机的对象,跟现实中的对象一样,都有属性和方法。不过,这些属性和方法都是系统提供的,为了实现一些功能而设计的。


属性和方法最明显的区别是:方法后跟小括号,属性后面不带小括号。 


数组对象有一个length的属性,它的作用是获取数组长度的。如:var len = arr.length;在PHP中获取数组的个数依靠函数“count()”。


1.png


1.png


数组的创建方法


(1) 使用创建对象的方式创建数组

1.png


语法:var arrObj = new  Array([参数])


说明:


这种语法大家应该再熟悉不过了。我们可以把“Array”想象成一个内置的类,配上new运算符,就创建了一个数组对象实例。


(2)使用[]来创建


将多个值放到[ ]中,直接赋一个变量即可。PHP也可以这样创建数组。


下面看演示代码:


1.png

1.png


注意:10——13行代码,JS添加数组元素时,必须指定一个下标编号,这点和PHP不一样。


JS数组支持关联数组吗?看示例:


1.png

1.png


分析:数组是一个对象,使用“arr[名称] = 值;”等于是向这个数组对象添加了一个新属性,其效果我们可以理解为JS也支持关联数组。


数组的操作


1)增加:arr[8] = 80;  //如果原数组中,下标为8的元素不存在,则是增加

2)删除:使用delete运算符。如:delete arr[2];  //删除下标为2的元素

         或者直接给某个下标赋值undefined

3)修改:arr[8] = 80;  //修改原数组中,下标为8的元素的值

4)读取:var age = arr[8];  //获取下标为8的元素的值,并赋给变量age

 

delete删除数组元素,删除的是数组元素的值,而所占的空间还在。那么,空间的值是undefined

即使删除所有的数组元素,那么,数组的长度也不会变


数组的遍历


我们能获得数组的个数,使用for循环语句是不是就能遍历整个数组?这和PHP是一样的。在PHP中,for循环只能遍历索引数组,在JS中也是这样的。所以PHP就推出了foreach语句可遍历关联数组,而JS怎么遍历出字符串下标的元素呢?


需要用到for...in语句,看手册上的解释:


1.png


看示例代码:


1.png

1.png

值为“undefined”for...in遍历不显示。


二维数组


就是某一个数组元素,它还是一个数组,就是数组嵌套数组。


var arr = [

            [1,2,3,4],

            [21,22,23,24],

            [31,32],

            40

];


形式上和PHP二维数组一样,对数组元素没有严格要求,就不做详细介绍了。


本节学习代码》》》