2026-10-26 01:25:19
函数 reverseString 通过从字符串末尾到开头逐个字符迭代,并将每个字符追加到新字符串的方式实现反转,避免了直接使用内置的 reverse() 方法。
详细解释函数定义与初始化
function reverseString(str) { let reversed = '';}定义函数 reverseString,接收参数 str(待反转的字符串)。
初始化空字符串 reversed,用于存储反转后的结果。
循环逻辑与字符访问
for (i = str.length - 1; i >= 0; i--) { reversed += str[i];}循环条件:从字符串最后一个字符的索引(str.length - 1)开始,递减至索引 0(包含),确保覆盖所有字符。
字符访问:通过 str[i] 获取当前索引 i 处的字符。例如:
若 str = "hello",则 str[4] 是 'o',str[3] 是 'l'。
字符串拼接:使用 += 运算符将当前字符 str[i] 追加到 reversed 的末尾,逐步构建反转后的字符串。
示例迭代过程(以 str = "abc" 为例)
初始状态:reversed = ""(空字符串)。
迭代 1(i=2):
str[2] 是 'c',reversed 更新为 "" + "c" = "c"。
迭代 2(i=1):
str[1] 是 'b',reversed 更新为 "c" + "b" = "cb"。
迭代 3(i=0):
str[0] 是 'a',reversed 更新为 "cb" + "a" = "cba"。
最终结果:reversed = "cba"。
返回值与输出
return reversed;函数返回构建完成的 reversed 字符串。
示例调用:const originalString = "Hello world";const reveresedString = reverseString(originalString);console.log("original String", originalString); // 输出: "Hello world"console.log("reversed string", reveresedString); // 输出: "dlrow olleH"
关键点说明
+= 运算符的作用:简化字符串的增量构建,无需额外数组或复杂逻辑,直接在原字符串末尾追加字符。
索引范围:循环条件 i >= 0 确保第一个字符(索引 0)被包含在反转结果中。原代码中循环条件为 i > 0,会导致遗漏第一个字符,需修正为 i >= 0 以正确处理所有情况。
该函数通过从后向前遍历字符串并拼接字符,高效实现了反转功能,避免了使用内置方法,同时利用 += 运算符简化了代码逻辑。修正循环条件后,可正确处理所有字符,包括首字符。