數組的常用api

Array.prototype.concat()

拼接多個數組,不改變里面的數組,返回一個新的數組

arr.every(callback[, thisArg])

對每個元素調用callback,直到它找到一個使 callback 返回 false(表示可轉換為布爾值 false 的值)的元素。如果發現了一個這樣的元素,every 方法將會立即返回 false。否則,callback 為每一個元素返回 true,every 就會返回 true。
callback 被調用時傳入三個參數:元素值,元素的索引,原數組。
thisArg可選,this的值.

arr.some()

同上,有一個返回true即返回true。全為false則返回false。

arr.filter(callback[, thisArg]) filter

為數組中的每個元素調用一次 callback 函數,并利用所有使得 callback 返回 true 或 等價于 true 的值 的元素創建一個新數組。callback 只會在已經賦值的索引上被調用,對于那些已經被刪除或者從未被賦值的索引不會被調用。那些沒有通過 callback 測試的元素會被跳過,不會被包含在新數組中。
callback 被調用時傳入三個參數:元素值,元素的索引,原數組。
thisArg可選,this的值.

array.forEach()

array.forEach(callback(currentValue, index, array){
    do something
}, this)

forEach 方法按升序為數組中含有效值的每一項執行一次callback 函數,那些已刪除(使用delete方法等情況)或者未初始化的項將被跳過(但不包括那些值為 undefined 的項)(例如在稀疏數組上)。
callback為數組中每個元素執行的函數,該函數接收三個參數:
currentValue(當前值)數組中正在處理的當前元素。
index(索引)數組中正在處理的當前元素的索引。
array forEach()方法正在操作的數組。
thisArg可選可選參數。當執行回調 函數時用作this的值(參考對象)。
forEach不返回值,主要用來綁定事件。

array.map()

同上,但是返回一個新的數組。原數組不變。

arr.fill(value,start,end) 方法用一個固定值填充一個數組中從起始索引到終止索引內的全部元素。數組本身被改變。

value用來填充數組元素的值。
start 可選起始索引,默認值為0。
end 可選終止索引,默認值為 this.length。

arr.find(callback[, thisArg])與arr.findIndex(callback[, thisArg])

find 方法對數組中的每一項元素執行一次 callback 函數,直至有一個 callback 返回 true。當找到了這樣一個元素后,該方法會立即返回這個元素的值,否則返回 undefined。findIndex方法返回元素的索引。
callback 被調用時傳入三個參數:元素值,元素的索引,原數組。
thisArg可選,this的值

arr.includes(searchElement, fromIndex)

用來判斷一個數組是否包含一個指定的值,根據情況,如果包含則返回 true,否則返回false。
searchElement 需要查找的元素值。
fromIndex 可選 從該索引處開始查找 searchElement。如果為負值,則按升序從 array.length + fromIndex 的索引開始搜索。默認為 0。

arr.indexOf(searchElement[, fromIndex = 0])與arr.lastIndexOf(searchElement[, fromIndex = arr.length-1])

同上,返回的是元素的索引。
lastIndexOf從后往前找。

arr.join(separator)

將數組元素拼接成字符串,默認參數為“,”。不改變原數組的值。
separator指定一個字符串來分隔數組的每個元素。如果需要(separator),將分隔符轉換為字符串。如果省略(),數組元素用逗號分隔。默認為 ","。如果separator是空字符串(""),則所有元素之間都沒有任何字符。

pop()/push()/unshift()/shift()

pop()刪除最后一個元素,并返回該元素的值。
push()將一個或多個元素添加到數組的末尾,并返回新數組的長度。
shift() 方法從數組中刪除第一個元素,并返回該元素的值。此方法更改數組的長度。
shift()方法將一個或多個元素添加到數組的開頭,并返回新數組的長度。
四種方法都改變數組。

arr.reduce(callback[, initialValue])

reduce為數組中的每一個元素依次執行callback函數,不包括數組中被刪除或從未被賦值的元素,接受四個參數:
accumulator累加器 累加回調的返回值; 它是上一次調用回調時返回的累積值,或initialValue(如下所示)。
currentValue數組 中正在處理的元素。
currentIndex可選 數組中正在處理的當前元素的索引。 如果提供了initialValue,則索引號為0,否則為索引為1。
array可選 調用reduce的數組

initialValue可選 用作第一個調用 callback的第一個參數的值。 如果沒有提供初始值,則將使用數組中的第一個元素。 在沒有初始值的空數組上調用 reduce 將報錯。

回調函數第一次執行時,accumulator 和currentValue的取值有兩種情況:調用reduce時提供initialValue,accumulator取值為initialValue,currentValue取數組中的第一個值;沒有提供 initialValue,accumulator取數組中的第一個值,currentValue取數組中的第二個值。
返回最后一次return的值

arr.reverse()

顛倒數組值,改變原數組

arr.slice(start,end)

方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新數組對象。且原始數組不會被修改。

array.splice(start, deleteCount, item1, item2, ...)

返回值由被刪除的元素組成的一個數組。如果只刪除了一個元素,則返回只包含一個元素的數組。如果沒有刪除元素,則返回空數組。改變原數組
start?
指定修改的開始位置(從0計數)。如果超出了數組的長度,則從數組末尾開始添加內容;如果是負值,則表示從數組末位開始的第幾位(從-1計數);若只使用start參數而不使用deleteCount、item,如:array.splice(start) ,表示刪除[start,end]的元素。
deleteCount 可選
整數,表示要移除的數組元素的個數。如果 deleteCount 是 0,則不移除元素。這種情況下,至少應添加一個新元素。如果 deleteCount 大于start 之后的元素的總數,則從 start 后面的元素都將被刪除(含第 start 位)。
如果deleteCount被省略,則其相當于(arr.length - start)。
item1, item2, ... 可選
要添加進數組的元素,從start 位置開始。如果不指定,則 splice() 將只刪除數組元素。

begin 可選
從該索引處開始提取原數組中的元素(從0開始)。如果該參數為負數,則表示從原數組中的倒數第幾個元素開始提取,slice(-2)表示提取原數組中的倒數第二個元素到最后一個元素(包含最后一個元素)。如果省略 begin,則 slice 從索引 0 開始。
end可選
在該索引處結束提取原數組元素(從0開始)。slice會提取原數組中索引從 begin 到 end 的所有元素(包含begin,但不包含end)。
slice(1,4) 提取原數組中的第二個元素開始直到第四個元素的所有元素 (索引為 1, 2, 3的元素)。如果該參數為負數, 則它表示在原數組中的倒數第幾個元素結束抽取。 slice(-2,-1)表示抽取了原數組中的倒數第二個元素到最后一個元素(不包含最后一個元素,也就是只有倒數第二個元素)。如果 end 被省略,則slice 會一直提取到原數組末尾。
如果 end 大于數組長度,slice 也會一直提取到原數組末尾。

arr.sort(compareFunction)

對數組進行排序,默認根據Unicode位點進行排序。改變原數組值
compareFunction可選函數
如果 compareFunction(a, b) 小于 0 ,那么 a 會被排列到 b 之前;
如果 compareFunction(a, b) 等于 0 , a 和 b 的相對位置不變。
如果 compareFunction(a, b) 大于 0 , b 會被排列到 a 之前。
compareFunction(a, b) 必須總是對相同的輸入返回相同的比較結果,否則排序的結果將是不確定的。

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Javascript有很多數組的方法,有的人有W3C的API,還可以去MDN上去找,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,205評論 0 6
  • 創建數組 arr.length--- title: js正則表達式categories: javascriptda...
    angelwgh閱讀 1,406評論 0 2
  • 下面以var arr = ['x', 'u', 'e', 'y', 'i', 'n', 'g']為例 修改器方法:...
    Lxylona閱讀 778評論 2 17
  • 數組的定義 數組是按序號排列的一組值,每個值的位置都有編號(從0開始)。數組本質上是一種特殊的對象。它的鍵名是按(...
    Allin_Lin閱讀 572評論 0 0
  • 我不記得你去年春天的樣子 不記得你的吻拂過我的心 不記得你溫柔摩挲我的衣領 不記得你的笑溢滿我的眼睛 我不記得你今...
    花花的櫻花閱讀 561評論 0 2