ES3数组方法:

添加:

push()

数组末尾添加数组

unshift()

在数组头部添加数组

concat()

合并数组

删除

pop()

删除并返回数组的最后一个元素

shift()

删除并返回数值的第一个元素

子数组

splice(start: int, deleteCount: int, items…: any)

splice() 方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
数组操作 - 图1

slice(start, end)

数组操作 - 图2

数组排序

reverse()

颠倒数组中元素的顺序

sort(compareFn: Function)

功能:
对字符数组或数字数组进行排序
特性:
默认按字符串比较。
按数值大小比较,需函数支持
function compare(val1,val2) {
if(val1 < val2) {
return -1;
} else {
return 1;
}}

数组转换

toString()

转换为字符串并返回;

toLocaleString()

转换为本地格式字符串并返回

join(separator: string)

用指定分隔符分割数组并转换为字符串;

ES5数组方法:

位置方法

indexOf(searchString: string, position?: int)

从数组的起始位置开始查找。
方法可返回数组中某个指定的元素位置;
如果要检索的元素没有出现,则该方法返回 -1。

lastIndexOf(searchString: string, position?: int)

从数组的结束位置开始查找。如果要检索的元素没有出现,则该方法返回 -1。
参数1:【必须】
必需。规定需检索的字符串值。
参数2:【可选】
可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

迭代方法

每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象——影响this的值(可选的)。传入这些方法中的函数会接收三个参数:1、数组项的值;2、该项在数组中的位置;3、数组对象本身。
根据使用的方法不同,这个函数执行后的返回值可能会也可能不会影响方法的返回值。

every

如果该函数对每一项都返回true,则返回true

filter

返回值为true的所有数组成员
数组操作 - 图3

forEach

无返回值,方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法:
array.forEach(function(currentValue, index, arr), thisValue)
参数1:
function(currentValue, index, arr):必需。 数组中每个元素需要调用的函数。
currentValue:必需。当前元素
index:可选。当前元素的索引值。
arr:可选。当前元素所属的数组对象。
参数2;
thisValue:可选。传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值

map

返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

some

有任意一项返回true,则返回true

归并方法

reduce

从数组起始位开始遍历
定义和用法
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
注意: reduce() 对于空数组是不会执行回调函数的。
语法
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
数组操作 - 图4

reduceRight

从数组末尾开始遍历

这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。
函数接收4个参数:1、前一个值;2、当前值;3、项的索引;4、数组对象;