【摘要】本系列文章是写给Javascript入门者的,总体上将Javascript的基础部分分成了九大块,分别是变量、运算符、数组、流程控制结构、字符串函数、函数基础、DOM操作基础、文档对象模型DOM和正则表达式。
【关键字】变量、运算符、数组、流程控制结构、函数、DOM、正则表达式。
在上一篇文章中,我们讨论了JS中的运算符,接下来,我们再来总结一下JS中的数组。
对于数组,我们将从数组的创建方法、基本操作、数组的属性以及ECMAScript 3方法和ECMAScript 5方法等五个方面来进行小结。下面我们就一一来回顾。
一、数组的创建方法
在JS中,我们创建的数组通常由一下五种方式:
1、空数组:
例如:var obj = new Array();
2、指定长度的数组:
例如:var obj = new Array(size);
其中size是一个正整数;
3、指定元素的数组:
例如:var obj = new Array(元素1,元素2,元素3……);
4、单维数组:
例如:var obj = [元素1,元素2,元素3……];
5、多维数组:
例如:var obj = new Array([数组序列1],[数组序列2],[数组序列3],……);
简单点说,其实多维数组的创建就相当于一个一维数组的创建,只不过这个一维数组的每个元素也是一个一维数组;
二、数组的基本操作
数组的基本操作主要分为存取数组元素、增加数组、删除数组和遍历数组这四种情况:
1、存取数组元素
数组元素的存取我们一般都是通过下标来进行的,那么这里同样也分为以下两种种情况;
(1)一维数组:数组名[下标索引];
(2)多维数组:数组名[外层数组下标][内层元素下标];
数组元素在存取的时候,还具备以下几个特点:
(1)数组的长度是弹性的,可自由伸缩;
(2)数组的下标值是从0开始的;
(3)数组元素可以添加到对象中;
2、增加数组
这里所指的增加数组是指给数组添加元素,最为简单的办法就是直接通过[],再给定一个新的下标值就可以添加这么一个新的数组元素了;
3、删除数组
删除数组指的就是删除数组元素,我们可以使用
delete 数组名[下标]
来删除数组元素;
4、遍历数组
遍历数组指的是根据数组的元素个数,指定一个变量,作为数组元素的下标,通过循环结构来依次对数组的每个元素做相应的处理,具体的语法格式如下:
for (var i in 数组名){ 所要实现的功能代码 }
三、数组的属性
数组的主要属性有三个,分别是constructor、length和prototype。
1、constructor
constructor指的是数组对象的构造函数,功能是引用其构造函数;
2、length
length指的是数组的长度,功能是获取数组元素的个数;
3、prototype
prototype指的是数组的原型链属性,我们可以通过增加数组对象的属性或方法来扩展数组的定义。
四、ECMAScript 3方法
数组对象在ECMAScript 3中有五类方法,分别是添加、删除、子数组、排序和转换等五类。
1、添加
数组的添加方法主要有三个,push()、unshift()、concat()。
(1)push():该方法是将某个元素添加到数组的尾部;
(2)unshift():该方法与push()方法刚好相反,是将某个元素添加到数组的头部;
(3)concat():该方法表示的是合并数组;
2、删除
数组的删除方法主要有两个js删除字符串最后一个字符,pop()和shift()。
(1)pop():该方法是删除数组的某个元素,并返回该数组的最后一个元素值;
(2)shift():该方法也是删除数组的某个元素,但返回的是该数组的第一个元素值。
3、子数组
子数组方法主要有两个,分别是slice()和splice()。
(1)splice():该方法根据不同的参数有不同的功能,例如:
如果我们需要删除任意数量的数组元素时,我们可以采用如下写法:splice(起始下标,要删除的元素数量)
如果我们要在指定的位置插入指定的数据项时,我们可以采用下面的这种写法:splice(起始下标, 0 ,要插入的数据项)
如果我们要替换任意数量的数据项时,我们可以参照下面的写法:
splice(起始下标,要删除的数据项个数,要插入的数据项)
(2)slice():该方法的功能是从已有的数组中选取部分元素构成新的数组。具体的写法如下:
slice(返回项的起始位置,返回项的结束位置)。
4、排序
数组的排序方法主要也是两个,一个是sort(),另一个是reverse()。
(1)sort():该方法的功能是对字符数组或数字数组进行排序,默认的排序方式是按照升序进行排列的;
(2)reverse():该方法的功能是将原数组中各个元素的顺序颠倒过来。
5、转换
数组的转换方法有三个,分别是join()、toString()和toLocaleString()。
(1)join():该方法的功能是用指定的分隔符来分割数组并转换为字符串;
(2)toString():该方法的功能是将数组转换为字符串,并直接返回;
(3)toLocaleString():该方法的功能也是将数组转换为字符串,但是是以本地格式进行转换,转换后也是直接返回。
五、ECMAScript 5方法
在ECMAScript 5中,数组的方法主要有三类,分别是位置方法、迭代方法和缩小方法。
1、位置方法
数组的位置方法主要有两个,分别是indexOf()和lastIndexOf(),这类方法的功能主要是用来查找元素在数组中的位置,它们主要有两个参数js删除字符串最后一个字符,一个表示要查找的字符串,另一个表示查找的起点位置。
(1)indexOf():从数组的起始位置开始向后查找;
(2)lastIndexOf():从数组的结束位置开始向前查找。
2、迭代方法
迭代方法相对来讲就比较多,主要有五个,分别是every()、filter()、forEach()、map()和some()。
(1)every():该方法的功能是如果函数对每一项都返回一个逻辑值true,则最终的返回结果为true;
(2)filter():该方法的功能会将逻辑值为true的所有数组成员都返回,也就是说最后返回的结果是一个数组;
(3)forEach():这个方法是没有返回值的;
(4)map():这个方法的功能是返回每次函数调用的结果数组;
(5)some():该方法的功能与every()方法的功能刚好相反,every()方法是要求所有的项都返回true时,最终才返回true,而some()方法只需要某个项返回的结果为true时,那么最终的结果就为true。
3、缩小方法
所谓的缩小方法实际的功能也是对数组进行遍历,其方法主要包括两个,分别是reduce()和reduceRight()。
(1)reduce():该方法表示的是从数组的起始位置开始向后遍历;
(2)reduceRight():它与reduce()方法遍历的顺序刚好相反,它是从数组的结束位置开始向前遍历。
以上内容就是关于javascript中数组的相关内容,希望能为各位带来帮助。
变量篇和运算符篇的内容点击标题即可查看↓