MST

星途 面试题库

面试题:JavaScript 中高阶函数的应用场景举例

请举例说明至少两个 JavaScript 中高阶函数的常见应用场景,并结合代码示例进行解释,例如如何使用高阶函数实现数组的过滤和映射。
29.0万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 数组过滤(filter
    • 应用场景:从一个数组中筛选出符合特定条件的元素。例如,从一个包含多个数字的数组中筛选出所有偶数。
    • 代码示例
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter((number) => number % 2 === 0);
console.log(evenNumbers); 
  • 解释filter 是 JavaScript 数组的一个高阶函数,它接受一个回调函数作为参数。这个回调函数会针对数组中的每个元素执行,返回 truefalse。如果回调函数返回 true,该元素就会被包含在 filter 返回的新数组中;如果返回 false,则该元素被排除。
  1. 数组映射(map
    • 应用场景:对数组中的每个元素进行相同的操作,然后返回一个新数组。例如,将数组中的每个数字都平方。
    • 代码示例
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map((number) => number * number);
console.log(squaredNumbers); 
  • 解释map 也是 JavaScript 数组的高阶函数,它同样接受一个回调函数。回调函数会对数组的每个元素执行,返回值会组成一个新的数组。在上述例子中,回调函数将每个数字进行平方操作,map 函数返回一个新数组,其中每个元素都是原数组对应元素的平方。
  1. 函数柯里化
    • 应用场景:将一个多参数函数转换为一系列单参数函数,便于复用部分参数。例如,在一个计算面积的函数中,固定其中一个参数。
    • 代码示例
function multiply(a) {
    return function(b) {
        return a * b;
    };
}
const double = multiply(2);
const result = double(5);
console.log(result); 
  • 解释multiply 函数返回一个新函数,这个新函数使用了外部函数 multiply 的参数 adouble 函数实际上就是 multiply 函数固定了 a2 的版本,当调用 double(5) 时,就相当于计算 2 * 5。这里 multiply 函数就是一个高阶函数,因为它返回了一个函数。