JavaScript中monkeyCount函数如何通过return返回1到n的完整数组
monkeyCount函数实现方案
原代码问题
新手编写的错误代码:
function monkeyCount(n) { for (i=1; i<=n; ++i){ let monkeyArray=[i]; return monkeyArray[i]; } }
这段代码存在以下问题:
- 数组在循环内部声明,每次循环都会被重置,无法累加存储1到n的所有数值
- return语句放在循环体内,第一次循环执行时就会直接终止函数返回结果,不会完成全部次数的遍历
- 数组下标使用错误:长度为1的数组仅存在下标为0的元素,访问
monkeyArray[i]会得到undefined - 循环变量i没有显式声明,会泄漏为全局变量,污染上层作用域
正确实现
新手友好的循环实现(易理解)
function monkeyCount(n) { // 循环外声明空数组,存储最终结果 const monkeyArray = [] // 遍历1到n的所有数值,依次推入数组 for (let i = 1; i <= n; i++) { monkeyArray.push(i) } // 遍历完成后返回完整数组 return monkeyArray }
简洁版一行实现
function monkeyCount(n) { return Array.from({length: n}, (_, idx) => idx + 1) }
两种实现传入参数5时,都会返回[1,2,3,4,5],符合需求。
内容的提问来源于stack exchange,提问作者Jonathan Joseph
相关产品推荐
相关产品推荐

