js數組操做

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