首页 > 解决方案 > 为什么在console.log Javascript时reverseString打印未定义

问题描述

我正在尝试反转一个字符串,但是当我在 chrome 控制台中使用 console.log 时,我会得到如下值:

function reverseString(str) {
  let newString = "";
  for (let i = str.length; i + 1 > 0; i--) {
    newString = newString + str[i];
  }
  return (newString);
}

console.log(reverseString("hello there"));

为什么反向字符串前面有undefined?

标签: javascript

解决方案


你从开始istr.length在第一次迭代中,str[i]解析为str[str.length],但字符串是零索引的,而不是单索引的,所以它总是undefined. 改为str.length - 1

function reverseString(str) {
  let newString = "";
  for (let i = str.length - 1; i + 1 > 0; i--) {
    newString = newString + str[i];
  }
  return (newString);
}
console.log(reverseString("hello there"));


推荐阅读