二:高阶函数(some、every、foreach等)
高阶函数:就是函数作为返回值
//模拟高阶函数//map 遍历数组中的元素 并执行传入的方法const maps = (array, fn) => {let results = [];for(let value of array) {results.push(fn(value));}return results;}//测试let arr = [1,2,3,4,5];arr = maps(arr, r => r * r)console.log(arr);
//every 数组中的元素是否都匹配条件const every = (array, fn) => {let result = true;for (let value of array) {result = fn(value);if(!result) {break;}}return resut;}//测试let arr = [1,2,3,4,5];arr = every(arr, r => r > 2);console.log(arr);
//some 是否至少有一个满足条件const some = (array, fn) => {let result = false;for(let value of array) {result = fn(value);if(!result) {break;}}return result;}//测试let arr = [1,2,3,4,5];arr = some(arr, r => r % 2 === 0)
使用高阶函数的意义:
- 抽象可以帮助我们屏蔽细节,只需要关注于我们的目标
- 高阶函数是用来抽象通用的问题
变得更加灵活
