用于循环的javascript赢得';迭代

用于循环的javascript赢得';迭代,javascript,for-loop,Javascript,For Loop,这里是新手程序员,我正在尝试一个目标是向后打印字符串的练习。这是我的密码: function firstReverse(str) { for(var i=str.length - 1; i >= 0;i --) { return(str[i]); } }; firstReverse("riyad"); 我一直得到字母“d”的返回,但不是整个字符串。不确定这里出了什么问题?请帮忙 您可以尝试以下方法: function firstReverse(str)

这里是新手程序员,我正在尝试一个目标是向后打印字符串的练习。这是我的密码:

function firstReverse(str) { 
    for(var i=str.length - 1; i >= 0;i --) {
        return(str[i]);
    }
};
firstReverse("riyad");
我一直得到字母“d”的返回,但不是整个字符串。不确定这里出了什么问题?请帮忙

您可以尝试以下方法:

function firstReverse(str) { 
    for(var i=str.length - 1; i >= 0;i --) {
        console.log(str[i]);
    }
};
我一直得到字母“d”的返回,但不是整个字符串

获取此输出是合理的,因为代码第一次进入for语句时,它将由于
return
语句而退出。换句话说,for语句将仅在第一步执行

函数firstReverse(str){
对于(变量i=str.length-1;i>=0;i--){
文件编写(str[i]);
}
};

第一反向(“里亚德”)问题是,return语句会打断循环并返回它得到的第一个字母

如果要反转字符串,可以尝试将其转换为数组,将其反转,并将新数组的concat元素还原为字符串。我认为这是一个简单的解决办法。下面是一段代码:

功能反转(str){
返回str.split(“”).reverse().join(“”);
}

控制台日志(反向('abc'))在第一次返回后,您离开了函数。当您执行
return
时,该方法将被放弃,之后不会执行任何其他操作。您需要查看
return
函数的功能。这是你问题的关键。是的,你的函数在第一次迭代中返回,所以你只能得到最后一个字母。不能有return语句,因为它会立即退出函数。将答案保存在一个变量中,然后在for循环后返回该变量。在学习过程中,您通常会这样做->
“riyad”.split(“”).reverse().join(“”)
请不要鼓励初学者使用
document.write()
。虽然它可能对测试程序有用,但由于各种原因,它很少能在真实网页中使用。@jfriend00当然。只是想让它在行动中。谢谢