如何在箭头函数内向数组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
相关产品推荐
相关产品推荐

