JS陣列的方法

藍莓_酸牛乳發表於2018-05-25

一、JS陣列

1、陣列的棧方法(只能在陣列末端操作)

  • push()方法可以接收任意數量的引數,把它們逐個新增到陣列末尾,並返回修改後陣列的長度。

  • pop()方法則從陣列末尾移除最後一項,減少陣列的 length 值,然後返回移除的項。

2、陣列的佇列方法

  • shift(),它能夠移 7 除陣列中的第一個項並返回該項,同時將陣列長度減 1。
  • unshift()與 shift()的用途相反:它能在陣列前端新增任意個項並返回新陣列的長度。

3、重排序方法(reverse()和 sort()方法的返回值是經過排序之後的陣列。)

  • reverse()方法會反轉陣列項的順序。
  • 在預設情況下,sort()方法按升序排列陣列項——即最小的值位於最前面,最大的值排在最後面。 為了實現排序,sort()方法會呼叫每個陣列項的toString()轉型方法,然後比較得到的字串,以確定如何排序。即使陣列中的每一項都是數值,sort()方法比較的也是字串。
sort(compare)的比較函式:如果第一個引數要在第二個引數之前,返回負數。
function compare(value1, value2) {
    if (value1 < value2) {
        return -1;
    } else if (value1 > value2) {
        return 1;
    } else {
return 0; }
}
複製程式碼

4、操作方法

  • 其中,concat()方法可以基於當前數 組中的所有項建立一個新陣列。具體來說,這個方法會先建立當前陣列一個副本,然後將接收到的引數 新增到這個副本的末尾,最後返回新構建的陣列。在沒有給 concat()方法傳遞引數的情況下,它只是 複製當前陣列並返回副本。如果傳遞給 concat()方法的是一或多個陣列,則該方法會將這些陣列中的 每一項都新增到結果陣列中。如果傳遞的值不是陣列,這些值就會被簡單地新增到結果陣列的末尾。

  • slice(),它能夠基於當前陣列中的一或多個項建立一個新陣列。slice()方法可以 接受一或兩個引數(不包含結束位置),即要返回項的起始和結束位置。在只有一個引數的情況下,slice()方法返回從該 引數指定位置開始到當前陣列末尾的所有項。

  • splice():方法始終都會返回一個陣列,該陣列中包含從原始陣列中刪除的項(如果沒有刪除任何項,則返回一個空陣列),並且是在願陣列上進行操作

    刪除:可以刪除任意數量的項,只需指定 2 個引數:要刪除的第一項的位置和要刪除的項數。 例如,splice(0,2)會刪除陣列中的前兩項。

    插入:可以向指定位置插入任意數量的項,只需提供 3 個引數:起始位置、0(要刪除的項數) 和要插入的項。如果要插入多個項,可以再傳入第四、第五,以至任意多個項。例如, splice(2,0,"red","green")會從當前陣列的位置 2 開始插入字串"red"和"green"

    替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定 3 個引數:起 始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。例如, splice (2,1,"red","green")會刪除當前陣列位置 2 的項,然後再從位置 2 開始插入字串 "red"和"green"。

5、位置方法

  • indexOf()和 lastIndexOf()_[這兩個方法都採用嚴格相等來做判斷]_這兩個方法都接收 兩個引數:要查詢的項和(可選的)表示查詢起點位置的索引。其中,indexOf()方法從陣列的開頭(位 置 0)開始向後查詢,lastIndexOf()方法則從陣列的末尾開始向前查詢。
  • ES6 中的find()findIndex()可達到相同的效果。

6、迭代方法

  • every():對陣列中的每一項執行給定函式,如果該函式對每一項都返回 true,則返回 true。

  • filter():對陣列中的每一項執行給定函式,返回該函式會返回 true 的項組成的陣列。

  • forEach():對陣列中的每一項執行給定函式。這個方法沒有返回值。

  • map():對陣列中的每一項執行給定函式,返回每次函式呼叫的結果組成的陣列。

  •  some():對陣列中的每一項執行給定函式,如果該函式對任一項返回 true,則返回 true

7、歸併方法

  • reduce()和 reduceRight()。這兩個方法都會迭 12 代陣列的所有項,然後構建一個最終返回的值。其中,reduce()方法從陣列的第一項開始,逐個遍歷 到最後。而 reduceRight()則從陣列的最後一項開始,向前遍歷到第一項。這兩個方法都接收兩個引數:一個在每一項上呼叫的函式和(可選的)作為歸併基礎的初始值。傳給 reduce()和 reduceRight()的函式接收 4 個引數:前一個值、當前值、項的索引和陣列物件。

相關文章