ES5新增數組的方法

ES5新增數組的方法

ES5新增數組常見方法(indexOf/forEach/map/filter/some/every)數組

  • .indexOf( data , start)
      檢測數組中是否存在指定數據,存在返回索引,不存在返回-1,start表示從第幾位開始查詢。
demo:
    var arr = ["a","45",67,true,"hello",67,45,25,13,89];
    
    console.log(arr.indexOf(67));           // 2
    console.log(arr.indexOf("world"));      // -1
    console.log(arr.indexOf("a"));          // 0
    console.log(arr.indexOf(67,3));         // 5
    console.log(arr.indexOf(67,6));         // -1

 

  • .forEach( function(val,idx,self){ } ); 循環,遍歷數組
      數組的專屬遍歷方法,1個參數:回調函數,在回調函數身上又有三個參數
var f = arr.forEach(function(val,idx,self){
    // console.log(val);
    // console.log(idx);
})
console.log(f);         // undefined

 

  • .map( function(val,idx,self){ } );
      不是專門用來遍歷的,可是能夠實現遍歷,格式同forEach
      map的主要功能:能夠用來獲取數組中的數據,操做,並返回成新數組;原數組不變
demo:
    "函數中的三個參數分別表明,該項的值,該項下標,數組自己"
    var m = arr.map(function(val,idx,self){
        console.log(val,idx,self)
        return val + "ly";
    })
    console.log(arr);       // Array(10) [ "a", "45", 67, true, "hello", 67, 45, 25, 13, 89 ]
    console.log(m);         // Array(10) [ "aly", "45ly", "67ly", "truely", "helloly", "67ly", "45ly", "25ly", "13ly", "89ly" ]

 

  • .filter( function(val,idx,self){ } )
      不是專門用來遍歷的,可是能夠實現遍歷,格式同forEach
      主要功能:過濾,回調函數每次返回值爲true時,會將這個遍歷到的值放在新的數組中,在filter結束後,返回這個數組;若是爲false,跳過;原數組保持不變
demo:
  var
f = arr.filter(function(val,idx,self){   console.log(val,idx,self)   return typeof val === "string";   })   console.log(f); // Array(3) [ "a", "45", "hello" ]

 

  • .some( function(val,idx,self){ } ) (課外補充)
      some意指「某些」,指是否「某些項」合乎條件。與下面的every算是好基友
      some存在一個值讓callback返回true就能夠了
demo1:
    // 效果是咱們斷定這個數組是否有一個負數 使用.some
    var arr = [1,58,125,-12,458,12];
    var Boon = arr.some(function(e,i,arr){
      return e < 0;
    })
    console.log(Boon)      // ture
    
    var scores = [5, 8, 3, 10];
    var current = 7;
    
demo2:
    function fn(score) {
        return score > current;
    }
    
    if (scores.some(fn)) {
        console.log("經過了!");        // "經過了!
    }

 

  • .every( function(val,idx,self){ } )
      全部函數的每一個回調函數返回true的時候纔會返回true,遇到一個false的時候終止執行,返回false
demo1:
    // 效果是咱們斷定這個數組全是正數 使用.every
    var arr = [1,58,125,-12,458,12];
    var Boon = arr.every(function(e,i,arr){
      return e > 0;
    })
    console.log(Boon)      //false

demo2:
    var scores = [5, 8, 3, 10];
    var current = 7;
    function fn(score) {
        return score > current;
    }
    if (scores.every(fn)) {
        console.log("經過了!");
    }else{
        console.log("沒經過");          // "沒經過"
    } 
相關文章
相關標籤/搜索