(一)檢測方法數組
檢測一個對象是否爲一個數組函數
① 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