反转字符串算法 - JavaScript

Reverse a string algorithm - JavaScript

我正在尝试解决此算法,但一开始就未定义。任何人都可以解释为什么会发生这种情况,以便我解决它吗?

// 给定一个字符串 S,在不反转其单个单词的情况下反转字符串。单词之间用点隔开。

function reverseStr(str){
    newStr="";
    for(var i=str.length;i>=0;i--){
        newStr+=str[i];
    }
    console.log(newStr);
}

reverseStr("hcum.yrev.margorp.siht.ekil.i");

输出:undefinedi.like.this.program.very.much

字符串从0开始索引,所以最后一个索引比字符串的长度少1。这意味着你应该做 var i=str.length-1 而不是 var i=str.length.

试试这个代码

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