javascript高阶函数—filter—map—reduce
高阶函数就是给函数传入的参数就是一个函数,例如
filter(function(){.....})
这里就以数组为例
- filter用法
filter的汉语意思就是过滤的意思,在数组中就是将不满足条件的数据过滤掉。过滤后的数组元素存放在新的数组中。
例子:
<script>
let arr_1=[10,12,34,56,100,120,222];
let arr_2=arr_1.filter(function(item){
return item<100;
})
console.log(arr_2);
</script>
这里的return就是将满足条件的值,返回到数组中。
- map用法
map函数就是对数组中的元素进行相关的操作
例子:
<script>
let arr_1=[10,12,34,56,100,120,222];
let arr_2=arr_1.map(function(item){
return item*2
})
console.log(arr_2);
</script>
- reduce用法
reduce可以传入两个参数,一个是函数,另一个是起始值。
函数中的参数也有两个fun(previous,now),一个是前一个值,另一个是当前值。讲到这里大家可能不是特别理解,下面举一个例子:
<script>
let arr_1=[10,12,34,56,100,120,222];
let arr_2=arr_1.reduce(function(previous,now){
return previous+now;
},0)
console.log(arr_2);
</script>
这里的最终返回值是554。就是令previous这个参数为第二个参数的值,也就是0,然后执行previous+now,这里的now是从第一个开始遍历的,然后将加起来的值,再赋值给previous,这样就实现累加的效果。