1. 程式人生 > >es6陣列的方法

es6陣列的方法

  1.複習的函式

  函式是由關鍵字function宣告的,他是一個引用資料型別,是Function的例項,在呼叫的時候會開闢一個私有空間

  2.函式的成員

  

  arguments:null  (是實參構成的陣列集合)

  caller:null(是這個函式的呼叫者,函式在A個函式內呼叫,那麼A就是這個函式的呼叫者,在window下caller是null)

  案例:

    function fn(){

      console.log(fn.caller)

    }

    function f(){

      fn(23,56)

    }

    f()         (解析:fn在f函式內呼叫,那麼f就是fn的呼叫者)

  length:形參的個數;

  name:是函式名,只跟定義有關,不能修改

  arguments 函式的實參構成的陣列集合 他下面的引數有

  callee:是當前函式本身;

  length:實參的個數;

  用遞迴寫一個1-10的求和;

  var sum=0;

  function add(m){

    sum=sum+m

    if(m<1){

      return sum

    }

    else{

      return add(m-1)

    }

  var as=add(10)

  arguments.callee,也可以代替遞迴(因為他指向當前函式本身)

  3.函式作為引數;

    1.匿名函式傳參

    2.命名函式傳參,只傳命名函式的函式名,不帶(),否則傳的是return 返回值;

  4.陣列的方法

  sort(function(a,b){

    return a-b

    })        僅僅是對數字的從小到大排序;

  還有一種全能的方法,可以對任何東西排序;

  function getsort(a,b){

    if(a>b){

      return 1

    }

    else if(a==b){

      return 0;

    }

    else{

      return  -1

    }

  這是從小到大排序,如果從大到小排序 1和-1;換下位置;

  跟資料型別一些方法:

  1.檢測資料型別 typeof 這是一個檢測的方法;

  2.instanceof 這是一個判斷的方法,返回值true和false;

  3.Object.prototype.toString()  返回的是以字串"[object Object]"   第一個引數:是物件資料型別 ;第二個引數:具體是那種資料型別;這種寫法得不到具體的第二個引數;

  所以需要在後面加.call()    Object.prototype.toString.call()   這種寫法是完美的;

  es6新增陣列的方法;

  之前的方法:1.concat()  2.push()  3.sort()  4.toString()  5.splice()  6.unshift()  7.reverse()  8.pop()  9.join()  10.shift()  11.indexOf()  12.slice()

  es6新增的方法:

  以 var arr=[12,65,47,13,10,13]為例;

  1.every()  用於檢測陣列中每個元素是否都滿足某個條件,返回值是true和false;

  案例:

    var as=arr.every(function(value){
      return value>=18
    })
      console.log(as)

  2.filter()  用於檢測陣列中某個元素是否都滿足某個條件,返回滿足條件所有元素構成的新陣列;

  案例:    

    var as=arr.filter(function(value){
      return value>12
     })

    console.log(as)

  3.find()  用於檢測陣列中第一個滿足條件的元素,並返回;

  案例:

    var a=arr.find(function(va){
      return va>18
    })
    console.log(a)  

  4.forEach()  用於對陣列進行遍歷;

  案例:

    arr.forEach(function(value){
      console.log(value)
     })

  5.Map()  用於對陣列進行遍歷,將每個元素都傳入到回撥函式中加工,並返回新的結果,最後得到的是元素加工後組成的新陣列;

  案例:

    var as=arr.map(function(va){
      return va+10;
     })
     console.log(as)

  由於這是es6新的方法,所以有的編輯器會報錯,可以不用管他,最新的瀏覽器已經可以識別這個方法了