JavaScript 數組的方法總結

數組方法大全

(一)檢測方法數組

檢測一個對象是否爲一個數組函數

① 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( )

對數組中的每個元素執行回調函數,若是該函數對每個元素都返回true,則返回true。

② 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
相關文章
相關標籤/搜索