我目前正在我的大学上学习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)
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)