arr.shift()
- 刪除原數組第一項,並返回刪除元素的值
- 如果數組爲空則返回undefined
arr.unshift(n1,n2,...)
- 將參數添加到原數組開頭,並返回數組的長度
- 注:IE6.0及以下返回值總爲undefined
arr.pop()
- 刪除原數組最後一項,並返回刪除元素的值
- 如果數組爲空則返回undefined
arr.push()
- 將參數添加到原數組末尾,並返回數組的長度
arr.concat([...])
- 返回一個新數組,新數組是由原數組的副本和參數鏈接而成的,故原數組不變
arr.splice(start,deleteCount,val1,val2,...)
- 從start位置開始刪除deleteCount項,並從該位置起插入val1,val2,...
arr.reverse()
- 將數組反序
arr.sort(sortby)
按指定的參數對數組進行排序
1)默認排序順序是根據字符串Unicode大小
2)參數sortby可選,規定排序順序,必須是函數
3)如果想按照自定義標準進行排序,就需要提供比較函數,該函數要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:
若 a 小於 b,在排序後的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。
若 a 等於 b,則返回 0。 若 a 大於 b,則返回一個大於 0 的值。
如:按照數字大小進行排序,需要加入的參數函數爲:
function sortNumber (a,b) {
return a - b
}
arr.slice(start,end)
- 返回從原數組中指定開始下標到結束下標之間的項組成的新數組(不包含結束那一項)
arr.join(separator)
- 將數組的元素組起一個字符串,以separator爲分隔符
- 省略的話則用默認用逗號爲分隔符
arr.indexOf(a)
- 返回a元素索引,不存在返回-1
- 索引從0開始
arr.reduce(callback,[initialValue])
callback (執行數組中每個值的函數,包含四個參數)
previousValue (上一次調用回調返回的值,或者是提供的初始值(initialValue))
currentValue (數組中當前被處理的元素)
index (當前元素在數組中的索引)
array (調用 reduce 的數組)
initialValue (作爲第一次調用 callback 的第一個參數。)
方法接收一個函數作爲累加器(accumulator),數組中的每個值(從左到右)開始縮減,最終爲一個值。reduce 爲數組中的每一個元素依次執行回調函數,不包括數組中被刪除或從未被賦值的元素
可以利用此函數對數組所有元素進行求和
sum = arr.reduce((a,b)=>a+b,0); // a爲上次計算返回的值,b爲當前累加的數組的元素,0表示初始累加值爲0
ES6新增
arr = Array.from({...})
- 將對象轉爲真正的數組,這個對象有兩種類型:類似數組的對象和可遍歷的對象(如ES6中的Set和Map)
arr = Array.of()
用於將一組值,轉換爲數組
例:Array.of(3,11,8) // [3,11,8]
彌補數組構造函數Array()的不足
new Array(3) // [undefined*3]
Array.of可以替代Array()或者new Array()
Array.of() // []
Array.of(undefined) // [undefined]
Array.of(1) // [1]
Array.of(1,2) // [1,2]
arr.copyWidthin(target, start = 0, end = this.length)
將特定位置的成員複製到其他位置,然後返回當前數組
target(必選):從該位置開始替換數據
start(可選):從該位置開始讀取數據,默認爲0,如果是負數,表示倒數。
end(可選):到該位置前停止讀取數據,默認等於數組長度。如果是負數,表示倒數。
arr.find()
- 用於找到第一個符合條件的數組成員
arr.findIndex()
- 返回第一個符合條件的數組成員位置