前言:

前天刚做完一个公司的校招笔试题,其中有考到数组的基础方法,故今天在此对其做一番总结,从而温故而知新。

一、数组的创建方式

1. 通过’[]’

1
2
3
4

1var arr1 = []; //创建空数组

2var arr2 = [1, 2, 3]; //直接创建一个包含三个元素分别为1, 2, 3的数组

2. 通过new Array()

1
2
3
4
5
6
7
8
9
10

1var arr3 = new Array(); //创建空数组

2var arr4 = new Array(); //创建长度为10的数组

3var arr5 = new Array(1, 1, 2, 3, 4); //创建数组并初始化值为1,1,2,3,4

4var arr6 = new Array([3]); //创建数组,第一个值初始化为3

5var arr7 = new Array([1, 2], [3, 4]); //创建一个二维数组,并初始化值为: [1, 2], [3, 4]

注:两种创建方式的区别

  • 通过’[]’是直接告诉处理器创建一个新的运行时数组,无需进行其他处理
  • 通过new Array()是让解释器直接查找执行上下文,找到构造函数,并调用它,从而生成数组对象。
  • 推荐使用’[]’

二、Array 对象属性

1. constructor: 返回对创建此对象的数组函数的引用

2. length: 设置或返回元素的数目

3. prototype: 使有能力向对象添加属性和方法

三、Array 对象方法

分两类:根据是否对原数组产生影响

1. 不改变原数组本身

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

1)concat() : 连接两个或更多的数组,并返回结果

2)join(): 把数组所有元素通过join传入的参数进行连接,结果返回一个元素拼接起来的字符串

3)slice(): 从某个已有的数组返回选定的元素

 语法:array.slice(start, end)

//start(必需),表示从何处开始选取,为负数时,表示从尾部开始算

//end(可选),规定从何处结束选取,不填则表示一直选取到数组尾部
4)toSource(): 返回该对象的源代码

兼容性:只有Gecko核心的浏览器才支持(比如 Firefox), 故IE/Safari/Chrome/Opera均不支持

5)toString(): 把数组转换成字符串,并返回结果

var b = [1,12345678]

b.toString(); //"1,12345678"
6)toLocaleString(): 把数组转换为本地字符串,并返回结果

var b = [1,12345678]

b.toLocaleString(); //"1,12,345,678"
7)valueOf(): 返回数组对象的原始值

2. 改变原数组本身

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

1)pop(): 删除并返回数组的最后一个元素

2)push(): 向数组的末尾添加一个或多个元素,并返回数组新的长度

3)reverse(): 颠倒(原)数组中元素的顺序

4)shift(): 删除并返回数组的第一个元素

5)unshift(): 向数组开头添加一个或更多元素,并返回新的长度

6)sort(): 对数组的元素进行排序

语法:array.sort(sortby) //sortby(可选),规定排序顺序,须是函数
7)splice(): 删除元素,并向数组添加新元素,然后返回被删除的元素

语法: array.splice(index, number, item1, item2, ..., itemX)

//index(必需),整数,规定添加/删除项目的位置

//number(必需),要删除的项目数,为0则不删除

//item(可选),向数组添加的新项目

参考链接:

http://www.w3school.com.cn/jsref/jsref_obj_array.asp