Array数组系列
[1]数组的介绍
[2]数组API[1]
[3]数组API[2]
[4]数组API[3]
[5]数组API[4]
参考文章
[1]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
[2]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Array_comprehensions
[3]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype
[4]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length
[5]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
[Recommend]http://web.mit.edu/jwalden/www/isArray.html
[1]数组的介绍
数组创建语法
数组创建有三种方法,语法分别如下:
1
2
3
4
5
6//第一种
[element0, element1, ..., elementN]
//第二种
new Array(element0, element1[, ...[, elementN]])
//第三种
new Array(arrayLength)elementN
- 前两种方法通过传入参数对数组进行初始化,当然参数也可以为空,直接是:
1
2var arrTemp1 = [];
var arrTemp = new Array();需要注意的是,如果使用第二种方法创建数组,当传入的参数中有一个且为数值的时候,则变成用第三种方法创建数组了。
arrayLength
- 数组创建的第三种方法是指定数组的长度,数组创建后每个元素都为undefined,长度则为传入的数值。
- JavaScript的数组类似与列表形式,数组中的元素类型和数组的长度都可以发生改变。
数组的访问
- 数组的第一个元素的下标为0,最后一个元素的下标则为数组的长度减去1(arr.length - 1)。
1 | var arr = ['this is the first element', 'this is the second element']; |
Tip:
数组的访问不能类似对象Object访问属性一样使用点(.)。其实无论是数组还是对象,在访问元素或者属性的时候,如果属性开头是数字,在进行访问的时候都只能通过方括号进行[]。
1 | var temp = { |
- 数组长度length和下标index的关系
- 数组的长度通过arr.length获得,下标的范围则是从0开始到arr.length - 1
1 | var fruits = []; |
- 通过改变数组的长度来修改数组内容
1 | fruits[5] = 'mango'; |
结论:
- 改变数组的长度会影响数组元素中的内容
- 增加数组的长度,对于新增的数组元素内容直接赋值为undefined
- 减少数组的长度,则截断数组
- 数组常用API分类
*. 数组属性(properties)
Array.length
Array.prototype
Array.prototype.pop()
Array.prototype.push()
Array.prototype.shift()
Array.prototype.unshift()
Array.prototype.reverse()
Array.prototype.sort()
Array.prototype.splice()
Array.prototype.concat()
Array.prototype.join()
Array.prototype.slice()
Array.prototype.toString()
Array.prototype.indexOf()
Array.prototype.lastIndexOf()
Array.prototype.forEach()
Array.prototype.every()
Array.prototype.some()
Array.prototype.filter()
Array.prototype.map()
Array.prototype.reduce()
Array.prototype.reduceRight()