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

JavaScript反转字符串结果前缀出现undefined的解决方法

问题根因

JavaScript字符串索引从0开始计数,长度为len的字符串,合法索引范围是0到len - 1。索引等于len的位置不存在对应字符,读取该位置会返回undefined。你写的循环初始值设为了len,第一次拼接字符时就把undefined转为字符串拼到了结果最前面,才会出现前缀异常。
另外你手动遍历计数求字符串长度的逻辑没有必要,字符串原生自带length属性,可以直接获取长度值。

修正代码

把循环初始值调整为len - 1,同时简化长度获取逻辑即可:

function reverse1(str) {
  const len = str.length;
  let r = "";
  // 从最后一个有效索引倒序遍历到首个字符索引0
  for (let i = len - 1; i >= 0; i--) {
    r += str[i];
  }
  return r;
}
console.log(reverse1("hello")); // 输出:olleh
简便实现参考

日常开发不需要手动写循环处理反转,可以直接调用数组、字符串的内置方法快速实现:

const reverseStr = str => str.split('').reverse().join('');
console.log(reverseStr("hello")); // 输出:olleh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:24:22