數組方法-ES5(複習筆記)

數組方法ES5

------ES5-------javascript

  1. push() --從數組末尾添加參數,返回修改後數組的長度;(可傳多個參數)java

    棧方法(後進先出)
    var animals = ['cat','dog','pig'];
    var all = animals.push('bird');  //末尾推入一項
    console.log(all);  // 4
  2. pop() --從數組末尾刪除參數,返回值爲刪除元素(只刪除一個);
    棧方法(後進先出)數組

    var animals = ['cat','dog','pig','bird'];
    var all = animals.pop(); //取得最後一項  
    console.log(all);  // bird
  3. unshift() --從數組起始添加參數,返回修改後數組的長度;(可傳多個參數)函數

    隊列方法(先進先出)
    var animals = ['cat','dog','pig'];
    var all = animals.unshift('bird');  //起始推入一項
    console.log(all);  // 4
  4. shift() --從數組起始刪除參數,返回值爲刪除元素(只刪除一個)設計

    隊列方法(先進先出)
    var animals = ['cat','dog','pig','bird'];
    var all = animals.unshift();  //取得起始一項
    console.log(all);  // cat
  5. splice()--
    刪除:刪除任意數量的項,指定兩個參數,要刪除的第一項的位置和要刪除得項數;code

    var animals = ['cat','dog','pig','bird'];
    var all = animals.splice(0,2);  //刪除前兩項
    console.log(all);  // ["cat"]

    插入:向指定位置添加任意數量的項,需提供三個參數:起始位置、0(要刪除的項數)和要插入的項;排序

    var animals = ['cat','dog','pig','bird'];
    var all = animals.splice(2,0,'a','b','c');  //從第二項後插入
    console.log(all);  // [] 
    console.log(animals);  // ["cat", "dog", "a", "b", "c", "pig", "bird"]

    替換:向指定位置添加任意數量的項,且同時刪除任意數量的項,需提供三個參數:起始位置、要刪除的項數和要插入的項;索引

    var animals = ['cat','dog','pig','bird'];
    var all = animals.splice(1,3,'a','b','c');  //從第一項後插入,刪除後三項
    console.log(all);  // ["dog", "pig", "bird"] 返回刪除得項
    console.log(animals);  // ["cat", "a", "b", "c"]
  6. slice(start,end)--切去起始位置到結束位置的數組(不包含end),返回值爲切出的數組;隊列

    var animals = ['cat','dog','pig','bird','tiger'];
    var frag = animals.slice(1,2);  
    var frag2 = animals.slice(1);
    console.log(frag);    //["dog"]
    console.log(frag2);  // ["dog", "pig", "bird",'tiger']
    //若是slice()方法的參數中有一個負數,則用數組長度加上該數來肯定相應的位
    //置。例如,在一個包含5 項的數組上調用slice(-2,-1)與調用slice(3,4)獲得的
    //結果相同。若是結束位置小於起始位置,則返回空數組。
    var frag3 = animals.slice(-3); //等同於 animals.slice(2)
    var frag4 = animals.slice(-3,-1); //等同於 animals.slice(2,4)
  7. concat()--鏈接兩個數組返回新數組ip

    var colors = ["red", "green", "blue"];
    var colors2 = colors.concat("yellow", ["black", "brown"]);
    alert(colors); //red,green,blue
    alert(colors2); //red,green,blue,yellow,black,brown
Javascript高級程序設計(第3版)
  1. sort()--按升序排列數組項,即最小的值位於最前面,最大的值排在最後面(默認是按照最左邊的數字進行排序,不是按照數字大小排序的),返回值是排好的數組;

    var values = [0, 1, 5, 10, 15];
    values.sort();
    console.log(values); //0,1,10,15,5
    values.sort(function(a,b){
        return a - b;   //由小到大排序,b-a由大到小排序
    })
  2. reverse()--反轉數組項的順序(默認是按照最左邊的數字進行排序,不是按照數字大小排序的),返回值是反轉後的數組;

    var values = [1, 22, 3, 43, 5];
    values.reverse();
    console.log(values); //5,43,3,22,1
  3. indexOf()--查找某個元素的索引值,如有重複的,則返回第一個查到的索引值若不存在,則返回-1

    var numbers = [1,2,3,4,5,4,3,2,1];
    alert(numbers.indexOf(4)); //3
  4. lastIndexOf()--查找某個元素的索引值(從後往前),如有重複的,則返回第一個查到的索引值若不存在,則返回-1;

    var numbers = [1,2,3,4,5,4,3,2,1];
    alert(numbers.lastIndexOf(4)); //5
  5. forEach(callback)--遍歷數組。這個方法沒有返回值;

    var numbers = [1,2,3,4,5,4,3,2,1];
    numbers.forEach(function(item,index,array){
        console.log(`value:${value}  index:${index}  array:${array}`)
    })
  6. every(callback)--根據條件判斷,所有知足,則返回true,不然false;

    var numbers = [1,2,3,4,5,4,3,2,1];
    var everyResult = numbers.every((v,i) => v < 3);
    alert(everyResult); //false
  7. filter(callback)--對數組進行過濾,返回知足條件的數組;

    var numbers = [1,2,3,4,5,4,3,2,1];
    var filterResult = numbers.filter((item, index, array) => item >2);
    alert(filterResult); //[3,4,5,4,3]
  8. map(callback)--映射數組(遍歷數組),有return 返回一個新數組;

    var numbers = [1,2,3,4,5,4,3,2,1];
    var mapResult = numbers.map((item, index, array) => item * 2);
    alert(mapResult); //[2,4,6,8,10,8,6,4,2]
  9. some(callback)--根據條件判斷,有一個知足條件,則返回true;

    var numbers = [1,2,3,4,5,4,3,2,1];
    var someResult = numbers.map((item, index, array) => item > 2);
    alert(someResult); //true
  10. reduce()--方法接收一個函數 callback 做爲累加器([accumulator]()),數組中的每一個值(從左到右)開始合併,最終爲一個值。
    接收四個參數:
    preValue: 上一次調用回調返回的值,或者是提供的初始值(initialValue)前一個值
    curValue: 數組中當前被處理的數組項(當前值)
    index: 當前數組項在數組中的索引值(項的索引)
    array: 調用 reduce()方法的數組

    說這麼多仍是看代碼就清楚了

    var values = [1,2,3,4,5];
    var sum = values.reduce(function(prev, cur, index, array){
        return prev + cur;
    });
    alert(sum); //15

`第一次執行回調函數,prev 是1,cur 是2。第二次,prev 是3(1 加2 的結果),cur 是3(數組
的第三項)。這個過程會持續到把數組中的每一項都訪問一遍,最後返回結果。`

  1. reduceRight()--功能和 reduce() 功能是同樣的,不一樣的是 reduceRight() 從數組的末尾向前將數組中的數組項作累加;

    var values = [1,2,3,4,5];
    var sum = values.reduce(function(prev, cur, index, array){
        return prev + cur;
    });
    alert(sum); //15

`第一次執行回調函數,prev 是5,cur 是4。固然,最終結果相同,由於執行的都是簡單相加的操做。使用reduce()仍是reduceRight(),主要取決於要從哪頭開始遍歷數組。除此以外,它們徹底相同。`

相關文章
相關標籤/搜索