You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现inReverse反转参数顺序函数的代码指导

代码问题排查

你当前的实现存在三个核心错误:

  • 错误调用reverse()方法:reverse()是数组实例方法,你在map遍历里尝试对每个传入的单个参数(比如字符串'cat')调用reverse(),单个基础类型值没有这个方法,会直接抛出类型错误。
  • 未执行传入的原函数:高阶函数接收的func参数全程没有被调用,即使参数反转正确,也拿不到原函数的执行结果。
  • 逻辑方向错误:你需要反转的是所有传入参数组成的整个数组的顺序,不是遍历每个参数做反转,map在这里属于完全错误的用法。
  • 额外隐患:不要把剩余参数的变量命名为arguments,arguments是普通函数内置的特殊类数组对象,同名覆盖容易引发意料之外的问题。
修正后实现
function inReverse (func) {
  return function (...args) {
    // 直接反转整个参数数组,通过展开运算符传给原函数执行
    return func(...args.reverse());
  }
}
效果验证
// 定义原函数:按传入顺序拼接两个字符串,空格分隔
const joinTwoStr = (a, b) => `${a} ${b}`;
// 包装得到参数反转的新函数
const catDog = inReverse(joinTwoStr);
// 测试调用
console.log(catDog('cat', 'dog')); // 输出 "dog cat",符合预期

内容的提问来源于stack exchange,提问作者user19522560

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:12:19