二:高阶函数(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)
使用高阶函数的意义:
- 抽象可以帮助我们屏蔽细节,只需要关注于我们的目标
- 高阶函数是用来抽象通用的问题
变得更加灵活