(一)检测方法数组
检测一个对象是否为一个数组函数
① instanceof 操做符编码
let arr = [] arr instanceof Array // true
② Array.isArray( )spa
let arr = [] Array.isArray(arr) // true IE9如下不支持该方法
(二)转换方法code
① toString( )对象
var arr = [1,2,3,4]; console.log(arr.toString()); // '1,2,3,4'
② join( )blog
将数组转换为字符串,默认状况下与toString()的结果一致,不同的是join()方法能够指定具体的分隔符,分隔符做为方法的实参以字符串形式传入。排序
③ valueOf( )索引
返回原数组队列
(三)栈方法
① push( )
能够接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度,该方法会改变原数组。
② pop( )
从数组末尾删除一个元素,返回被删除的元素,该方法会改变原数组。
(四)队列方法
① shift( )
删除数组的第一个元素,并将该元素返回,该方法会改变原数组。
② unshift( )
在数组开头添加一个或多个元素,并返回新数组的长度,该方法会改变原数组。
(五)重排序方法
① reverse()
反转数组,并返回反转后的数组,该方法会改变原数组。
② sort()
用于对数组元素进行排序,默认按照Unicode编码进行升序排列,除此以外还能够自定义排序,这时须要一个回调函数做为方法的参数,函数须要两个形参。该方法会改变原数组。
排序原理:回调函数会执行不少次(具体根据数组的复杂程度而言),每次都随机的抽出数组的两个元素a,b做为实参,按照原数组的顺序,a必定在b前面,若是结果大于0,则交换位置;结果等于0,则证实a与b相等,不交换位置;若是小于0,则a与b不交换位置。
var arr = [2,3,1,5,4]; arr.sort(function(a,b){ return a-b;//降序改成b-a })
(六)操做方法
①concat( )
先复制当前数组,而后再把实参添加至新建立的数组中,并返回新的数组,该方法不会改变原数组。
var arr = [1,2,3,4,5]; arr.concat();//复制arr数组 arr.concat(6,7,8);//将6,7,8三个元素添加至新建立的数组末尾
②slice( )
用于截取数组,该方法须要两个参数,第一个参数表示截取的开始索引位置(包括),第二个参数表示截取的结束位置(不包括),其中,第二个参数不是必要的,若是没有第二个参数,则默认从开始索引开始截取至结尾。该方法不会改变原数组,只是将截取的元素储存于一个新的数组中,并返回这个数组。
var arr = [2,1,3,2,4]; arr.slice(1); //[1,3,2,4] arr.slice(1,2); //[1]
③splice()
这个方法有如下三种功能:
删除:能够删除任意数量的元素,只需指定两个参数,要删除的第一个元素的索引和要删除的数量。
var arr = [2,1,3,2,4]; arr.splice(0,2);//表明从索引为0的元素开始日后删除两个元素,返回被删除的元素所组成的数组:[2,1]
插入:能够指定位置插入任意数量的元素,须要提供三个参数,起始位置、0(要删除的数量)、要插入的元素。
var arr = [2,1,3,2,4]; arr.splice(0,0,5);//表明从索引为0的位置前面插入一个元素5,返回的是一个空数组(由于没有删除元素)
替换:能够向指定位置插入任意数量的元素,且同时删除任意数量的元素,须要三个参数,起始位置、要删除的数量和要插入任意数量的元素。
var arr = [2,1,3,2,4]; arr.splice(2,2,6);//从索引为2的位置开始删除两个元素,返回被删除的元素,而后由第三个参数替换被删除元素所在的位置
注意:该方法始终都会返回一个数组,该数组中包含从原数组中删除的元素,若是没有删除任何元素,则返回一个空数组。
(七)位置方法
① indexOf( )
查找数组中的元素(全等比较),一旦找到则返回这个元素在数组中的索引,若是没有找到则返回-1。
② lastIndexOf( )
与indexOf()基本一致,不一样的是该方法是从数组的末尾开始寻找。
(八)迭代方法
① every( )
② some( )
对数组中的每个元素运行回调函数,若是该函数对任意一个元素返回true,则返回true。
③ filter( )
filter意为过滤的意思,在这里也正是过滤的做用,利用回调函数过滤数组的某些元素(留下结果为 true 的元素),返回一个新的数组,该方法不会改变数组。
var arr = [2,1,3,2,3,4]; var result = arr.filter(function (item,index,array) { return item > 2; }); console.log(arr); //[2,1,3,2,3,4] console.log(result); //[3,3,4]
④ forEach( )
循环,太经常使用了这个~~
⑤ map( )
加工,每一个元素都执行回调函数后返回的结果~
(九)归并方法
reduce( ) 与 reduceRight( )
这两个方法都会迭代数组的全部元素,而后构建一个最终返回的值。其中,reduce()方法从数组的第一个元素开始,逐个遍历到最后,而reduceRight()则从数组的最后一个元素开始,向前遍历。这两个方法都接收两个参数:一个是在每个元素上运行的回调函数,另外一个(可选的)做为归并基础的初始值。回调函数接收4个参数:前一个值,当前值,元素索引和数组对象。这个函数返回的任何值都会做为第一个参数自动传给下一个元素。
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); console.log(sum); //15
(十)ES 7 新增的方法 —— includes( )
用于检查数组中是否含有指定的元素,若是有则返回true。
let arr = [1,2,3,4,5] arr.includes(2) //true