javascript - 为什么在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?
解决方案
你从开始i
。str.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"));
推荐阅读
- reactjs - 迭代对象数组以创建多个 UI 开关
- c# - Unity 获取引发 OnCollision... 事件的触发器
- django - Django Rest Framework ModelSerializer 为主字段提供错误
- reactjs - useState 创建重复项 - 无限滚动 - 警告:遇到两个具有相同键的孩子
- iteration - 使用 terraform 中的 for_each 表达式循环地图变量
- python - 后端退货
(TypeError:字符串索引必须是整数) - flutter - 无法在初始化程序中访问 Flutter 小部件
- javascript - 使用 chrome.debugger 库发送一封信的正确语法是什么?
- webdatarocks - 行、列、度量中的 WebDataRocks 数据透视表标题存在问题
- javascript - 输入后如何使元素向右移动?