js數組函數

  最近逛freecode看到了這兩個數組的方法,傻傻的理不清,趕忙總結一波。javascript

  map(callback)函數會迭代數組中的全部元素,並根據callback進行處理,最後會返回一個新數組。而回調函數callback支持多個參數包括元素的值val,數組arr以及數組下標index。java

  好比咱們若是要將數組的每一項平方,就能夠用以下代碼實現:數組

var arr = [1,2,3];
var after = arr.map(function(val){
	return val*val;
})

  而且若是咱們console.log(arr)會發現arr沒有改變,這也證明了map方法不會改變原數組。 函數

 reduce(function(previousVal, currentVal){},[origin])相比而言看起來比較複雜,而且特殊的是它還有一個可選的參數。其實orgin表示的是previousVal的初值,而previousVal就至關於一個累加器,currentVal表示數組的當前值。若不設置origin的值,previousVal就爲數組第一項的值。反之previousVal爲origin的值code

  若是咱們要將數組全部項累加,除了用for循環咱們還能夠使用reduce函數。blog

var arr = [1,3,4,5];
arr.reduce(fucntion(previousVal,currentVal){
    return previousVal+currentVal;
});

   最後再扒一扒filter函數,它能夠用來過濾指定條件的項。即return爲true的被留下,return爲false的被過濾掉。ip

var arr = [1,3,6,78,4];
var new  = arr.filter(function(val){
   return val < 4;     
})

   上面這三個函數都不會改變原數組。回調函數

相關文章
相關標籤/搜索