在JavaScript里,高阶函数是指那些接收函数作为参数,或者把函数作为返回值的函数。这类函数让代码更具表达力,也更容易复用逻辑。常见的数组方法如map和filter都属于高阶函数,它们接受一个回调函数来定义具体行为。
什么是高阶函数
普通函数一般处理的是数据值,而高阶函数处理的是“行为”。比如下面这个函数接收另一个函数作为参数:
// 简单的高阶函数示例
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
repeat(3, function(index) {
console.log('当前索引:' + index);
});
上面代码中repeat就是高阶函数,因为它把action这个函数当作参数使用。
map方法如何使用
map会遍历原数组,对每个元素调用回调函数,并把返回值组成新数组,原数组不变。适合做数据格式转换。
const numbers = [1, 2, 3, 4];
// 将每个数字乘以2
const doubled = numbers.map(function(item) {
return item * 2;
});
console.log(doubled); // [2, 4, 6, 8]
使用箭头函数可以更简洁:
const tripled = numbers.map(item => item * 3); console.log(tripled); // [3, 6, 9, 12]
filter方法如何使用
filter同样返回新数组,但只保留回调函数中返回true的元素,常用于剔除不需要的数据。
const users = [
{ name: '张三', age: 17 },
{ name: '李四', age: 22 },
{ name: '王五', age: 19 }
];
// 筛选出成年人
const adults = users.filter(function(user) {
return user.age >= 18;
});
console.log(adults);
// [{ name: '李四', age: 22 }, { name: '王五', age: 19 }]
map与filter结合
二者可以链式调用,先映射再过滤,或者先过滤再映射,让逻辑清晰。
const result = numbers .map(item => item + 1) .filter(item => item % 2 === 0); console.log(result); // [2, 4]
小结
高阶函数让JavaScript的数组操作更声明式。理解map和filter的回调规则,就能在日常开发中少写繁琐的for循环,写出更易维护的代码。
JavaScript高阶函数map_filter修改时间:2026-07-27 09:45:44