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

使用Map方法编写函数(Colt Steele Web开发训练营):cleanNames函数返回undefined问题

代码问题排查

练习题目要求

题目要求截图

已编写的代码

function cleanNames(array) {
array.map(function (n) {
    return n.trim();
})
}

问题定位

代码运行始终返回undefined,核心原因如下:

  • map()是有返回值的数组方法,遍历数组时会对每个元素执行回调逻辑,最终返回由回调处理结果组成的全新数组。当前函数只在内部执行了map遍历,没有通过return语句把map生成的处理后数组向外返回,按照JS语法规则,没有显式return的函数最终默认返回undefined。
  • map()方法本身不会修改原始入参数组。缺少最外层return的情况下,整个函数执行过程既不会改动传入的原数组,也不会向外传递任何处理结果,完全无法实现姓名去空格的清洗效果。

修正方案

在map调用前加上return语句,将处理后的数组作为函数返回值:

function cleanNames(array) {
  return array.map(function (n) {
    return n.trim();
  })
}

补充说明

如果练习要求是直接修改原数组而非返回新数组,则不适合使用map方法,需要换成forEach遍历逐个修改原数组的对应元素;但这类字符串清洗的练习绝大多数要求都是返回处理后的新数组,补充对应return即可正常通过测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 02:06:04