使用高阶函数过滤
filter函数的使用
使用filter函数过滤取出小于100的数字 该回调函数有一个要求 ,必须返回一个boolean值
const nums = [10,35,231,513,21,54,100];
//当返回true时,函数会自动将这次回调的n返回的新的数组中,返回false函数会过滤掉该次的n
//例如 第一次遍历的n为10 小于100 函数返回false 被过滤
//第二次遍历的n为35 小于100 函数返回false 被过滤
//第三次遍历的n为231 大于100 函数返回true 添加到新的数组中
let newNums = nums.filter((n)=>{
console.log(n);//n为nums中的值
return n >= 100 ;
})
console.log(newNums); //[231, 513, 100] 大于等于100的值保留
map函数的使用
每次返回处理过后的值
const nums2 = [10,20,30,40];
//第一次n =10 返回一个10 *2 = 20 依次下去 40 60 80
let newNums2 = nums2.map((n)=>{
return n * 2
})
console.log(newNums2); //[20, 40, 60, 80]
reduce函数的使用
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
**例如**
var numbers = [15, 2, 1, 4,80];
let total = numbers.reduce(function(perValue,n){
return perValue + n
},0)
//过程
1.perValue = 0 n = 15
2.perValue = 15 n = 17
3.perValue = 17 n = 18
4.perValue = 18 n = 22
5.perValue = 22 n = 80
console.log(total) //102