转换函数参数

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索 JavaScript 中 overArgs 函数的用法。该函数允许我们在将参数传递给另一个函数之前对其进行转换。我们将学习如何使用 overArgs 通过创建一个新函数来简化代码并提高可重用性,该新函数使用转换后的参数调用现有函数。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/array_methods("`Array Methods`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("`Spread and Rest Operators`") subgraph Lab Skills javascript/variables -.-> lab-28666{{"`转换函数参数`"}} javascript/data_types -.-> lab-28666{{"`转换函数参数`"}} javascript/arith_ops -.-> lab-28666{{"`转换函数参数`"}} javascript/comp_ops -.-> lab-28666{{"`转换函数参数`"}} javascript/array_methods -.-> lab-28666{{"`转换函数参数`"}} javascript/higher_funcs -.-> lab-28666{{"`转换函数参数`"}} javascript/spread_rest -.-> lab-28666{{"`转换函数参数`"}} end

转换函数参数

要转换函数参数,请使用 overArgs 函数,它会创建一个新函数,该函数使用转换后的参数调用提供的函数。

  • 要转换参数,请结合使用 Array.prototype.map() 和展开运算符 (...),并将转换后的参数传递给 fn
const overArgs =
  (fn, transforms) =>
  (...args) =>
    fn(...args.map((val, i) => transforms[i](val)));
  • 要测试 overArgs 函数,请创建一个示例函数和一个转换数组,然后使用参数调用新函数。
const square = (n) => n * n;
const double = (n) => n * 2;

const fn = overArgs((x, y) => [x, y], [square, double]);
fn(9, 3); // [81, 6]

要开始练习编码,请打开终端/SSH 并输入 node

总结

恭喜你!你已经完成了“转换函数参数”实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程