Vuejs学习笔记(一)-16.js的高阶函数 filter,reduce,map
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <script src='..js/vue.js'></script> 9 <script> 10 let arr = [1, 2, 3, 4, 5, 6, 7, 8]; 11 let arr1 = []; 12 13 arr1 = arr.filter(function (n) { 14 return n < 5; 15 }) 16 17 console.log(arr1) 18 19 20 let arr2 = arr1.map(function (n) { 21 return n * 2; 22 }) 23 24 console.log(arr2); 25 26 // 3.对数组中所有的元素进行汇总 27 // 参数1是function,参数2传的0,初始值是0 28 let arr3 = arr2.reduce(function (preValue, n) { 29 return preValue + n; 30 }, 0) 31 32 console.log(arr3) 33 // 第一次遍历: preValue:0,n:2; 34 // 第二次遍历: preValue:2,n:4; 35 // 第三次遍历: preValue:6,n:6; 36 // 第四次遍历: preValue:12,n:8; 37 // return preValue+n:20 38 39 40 // 以上代码合并 41 arr4 = [1, 23, 43, 5, 6, 7, 8, 9, 0]; 42 let total1 = 0; 43 total1 = arr4.filter(function (n) { 44 return n < 10; 45 }).map(function (n) { 46 return n * 2; 47 }).reduce(function (preValue, n) { 48 return preValue + n; 49 }, 0) 50 51 // 以上代码简写 52 arr5 = [1, 23, 43, 5, 6, 7, 8, 9, 0]; 53 let total2 = 0; 54 total2 = arr5.filter(n => n < 10).map(n => 2 * n).reduce((pre, n) => pre + n) 55 </script> 56 </body> 57 </html>
以上是对数组进行多种操作,
filter 按照条件过滤并赋值给新的数组
map 按照表达式进行运算并赋值到新的数组。
reduce:对数据内部的数据进行累加操作
最后一个简便操作则是将所有函数拼接在一起,因为每个函数本身返回数组,而filter,map,reduce都是数组的高阶函数
total2 = arr5.filter(n => n < 10).map(n => 2 * n).reduce((pre, n) => pre + n)
剪头函数是一种简便写法
本文来自博客园,作者:kaer_invoker,转载请注明原文链接:https://www.cnblogs.com/invoker2021/p/14959648.html

浙公网安备 33010602011771号