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;     
})

   上面这三个函数都不会改变原数组。回调函数

相关文章
相关标签/搜索