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

如何在箭头函数内向数组push元素?JS新手参数传递及代码问题求助

问题原因拆解

  • 你的传参方式完全正确,数组是引用类型,你在箭头函数内部执行的push操作已经成功把偶数写到了外部的arrayEvenNumbers数组里,没有问题
  • 你现在打印结果为undefined,是因为这个箭头函数没有写return语句,JS里所有没有显式返回值的函数,执行后默认返回undefined,你打印的是函数的返回值,不是目标数组的内容
  • 额外优化点:你循环里的变量i没有声明,会默认变成全局变量,建议用let声明,避免污染全局作用域

修正后的代码

var arrayEvenNumbers = [];
var evenNumbers = (arrayEvenNumbers) => {
  // 用let声明循环变量,避免全局污染
  for (let i = 2; i <= 20; i++) {
    if (i % 2 == 0) {
      arrayEvenNumbers.push(i);
    }
  }
  // 显式返回数组,方便直接获取执行结果
  return arrayEvenNumbers;
}
// 两种打印方式都可以
// 方式1:直接打印外部的目标数组
console.log(arrayEvenNumbers);
// 方式2:打印函数返回的结果
console.log(evenNumbers(arrayEvenNumbers));

可选简化写法

如果你不需要复用这个生成偶数的逻辑,也可以不用传参,直接在函数内部操作外部数组,写法更简单,不过传参的写法复用性更高,更推荐在实际项目中使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:06:03