1.map: map(fun())javascript
map便是 「映射」的意思,返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值java
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // 每一個元素除以10,最後返回一個新數組newArray let newArray = array.map(value => value/10); //[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] // 語法: arr.map(function(value,index,arr){ // 這裏能夠寫本身的邏輯 });
2.some: some(fun())數組
依次執行數組的每一個元素,函數
若是有一個元素知足條件,則表達式返回true , 剩餘的元素不會再執行檢測; 測試
若是沒有知足條件的元素,則返回falsespa
array.some(function(value){ console.log(value); }); array.some(a => a>23); //false (每個都小於23) array.some(a => a>2); //true (第二個就大於2) // 語法 array.some(function(currentValue,index,arr){ // 邏輯 })
3.every: every(fun())code
使用指定函數檢測數組中的全部元素:ip
若是數組中檢測到有一個元素不知足,則整個表達式返回 false ,且剩餘的元素不會再進行檢測字符串
若是全部元素都知足條件,則返回 trueit
array.every(a => a>3); // false (第一個就小於3) array.every(a => a>0); // true (每個都大於0) // 語法 array.every(function(currentValue,index,arr){ // 邏輯 })
4.filter: filter(fun())
建立一個新的數組,新數組中的元素是經過檢查指定數組中符合條件的全部元素
array.filter(a => a%2==0); // 返回一個新的偶數數組 [2, 4, 6, 8, 10] // 語法 array.filter(function(currentValue,index,arr){ // 邏輯 })
5.reduce:
接收一個函數做爲累加器,數組中的每一個值(從左到右)開始縮減,最終計算爲一個值
能夠做爲一個高階函數,用於函數的 compose
array.reduce((a,b)=> a+b); // 結果爲數組全部元素的何:55 // 語法 reduce((total,currentValue, index,arr) => total + currentValue); // total: 必需。初始值, 或者計算結束後的返回值 // currentValue: 必需。當前元素
6.concat: 鏈接兩個或多個數組
該方法不會改變現有的數組,而僅僅會返回被鏈接數組的一個副本
這裏須要注意: concat() 操做的參數是數組,可是添加到newA中的書數組中的元素,而不是數組,結果以下:
let a1 = ["a","b"]; let a2 = ["c","d"]; let a3 = ["e","f"]; let newA = a1.concat(a2,a3); // newA: ["a", "b", "c", "d", "e", "f"] // 可簡寫成 let newB = [...a1,...a2,...a3,"k"] // newB: ["a", "b", "c", "d", "e", "f","k"],數組的位置能夠任意更換
7.slice: array.slice(start, end);
從已有的數組中返回選定的元素; 包含從 [start,end)的 arrayObject 中的元素,其中start可爲負,表示從倒數開始(字符串一樣適用)
array.slice(); // 至關於複製,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] // 可簡寫 let array1 = [...arr]; array.slice(5); // 第5個開始到末尾:[6, 7, 8, 9, 10] array.slice(-2); // 倒數第2個開始到末尾:[9, 10] array.slice(1,3); //array.slice(1,3);
8.splice:
方法用於插入、刪除或替換數組的元素
注意:這種方法會改變原始數組!
array.splice(index,howmany,item1,.....,itemX) // index: 必需。規定從何處添加/刪除元素; 該參數是開始插入和(或)刪除的數組元素的下標,必須是數字 // howmany: 必需。規定應該刪除多少元素。必須是數字,但能夠是 "0"; 若是未規定此參數,則刪除從 index 開始到原數組結尾的全部元素 // item1, ..., itemX: 可選。要添加到數組的新元素 let array5 = array.splice(2,4); // 從第3個開始,刪除4個,array: [1, 2, 7, 8, 9, 10] 返回被刪的元素數組array5:[3, 4, 5, 6] array = [1, 2, 3]; array.splice(2,1,99); //將第三個值改成99 array:[1, 2, 99] array = [1, 2, 3]; array.splice(2,0,88); //給第三個位置加個值88 array:[1, 2, 88, 3]
9. find: 返回經過測試(函數內判斷)的數組的第一個元素的值
數組中的每一個元素都調用一次函數執行:
當數組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,以後的值不會再調用執行函數。
若是沒有符合條件的元素返回 undefined
let personList = [ { name: '張三', sex: '1'}, { name: '李四', sex: '2'}, { name: '王五', sex: '2'}, ] personList.find(person => person.name ==='李四' && person.sex === '2'); // {name: "李四", sex: "2"}