新手javascript,如何编写反向迭代?

use*_*715 2 javascript

我目前正在我的大学上学习CIS课程,其中一个项目是javascript.它被分成两个不相关的部分,我能够做第二部分,但我被困在第一部分.我的教授希望我写一个迭代,它会以相反的顺序显示我在提示屏幕中写的任何名字.因此,如果我写"约翰史密斯",它将显示"受害者nhoj".问题是我不知道如何写它.

<html>
   <body>
      <script>
         var namIn = window.prompt("Enter name:" );  
         var namAr = namIn.split("");  
         var namArLen = namAr.length;
         document.write(namAr + "<br /> Length: " + namArLen);
     </script>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Jas*_*ske 8

JavaScript中的字符串有一个函数调用split()它将它们转换为数组.JavaScript中的数组有一个叫做reverse()反转命令的函数,还有一个调用join()它的函数将它们转换回字符串.您可以将这些组合成:

"John Smith".split("").reverse().join("")
Run Code Online (Sandbox Code Playgroud)

返回:

"htimS nhoJ"
Run Code Online (Sandbox Code Playgroud)

此外,我不知道这是否是一个错字,但你可以抛出一个toLowerCase()来获得你的问题的100%:

"John Smith".split("").reverse().join("").toLowerCase()
Run Code Online (Sandbox Code Playgroud)

收益:

"htims nhoj"
Run Code Online (Sandbox Code Playgroud)

至于标题中的问题,你可以在最后一个参数中指定for循环的方向,如下所示:

var reversed = [];
var name = "John Smith".split("");
for(var i = name.length-1; i >= 0; i--) {
    reversed.push(name[i]);
}
console.log(reversed.join(""));
Run Code Online (Sandbox Code Playgroud)

哪个会输出:

"htimS nhoJ"
Run Code Online (Sandbox Code Playgroud)