我一直在尝试开发javascript以识别名称,显示名称,长度和字母以及它们出现的位置,但我似乎无法让while循环工作。有人可以帮帮我,谢谢。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html >
<head>
<title>
javascript
</title>
<script>
function displayName(){
var str = prompt("enter your name:");
var len = str.length;
var chara = str.charAt(0);
var n = chara.indexOf(0);
while(chara <= len){
document.write("<br>the letter " + chara + " is number " + n);
chara++;
}
document.write("the name entered is: " + str + "<br></br>" + "the length is " + len);
}
</script>
</head>
<body>
<script>
displayName();
</script>
</body>
</html>
答案 0 :(得分:1)
你的循环正在使用错误的迭代器。
function displayName(){
var str = prompt("enter your name:");
var len = str.length;
var chara = 0;
while(chara < len){
document.write("<br>the letter " + str.charAt(chara) + " is number " + (chara + 1));
chara++;
}
document.write("<br/>the name entered is: " + str + "<br></br>" + "the length is " + len);
}
答案 1 :(得分:1)
您将chara
设置为第一个字符,&#34; A&#34;例如。然后你尝试做while A <= 4
(假设长度是4),这永远不会是真的。 chara
需要成为一个数字才能发挥作用。
答案 2 :(得分:0)
看起来您正在将chara
设置为返回字符串的第一个字符。尝试将其设置为0
var chara = 0;
看看是否有效。
答案 3 :(得分:0)
您正在递增错误的变量。您应该增加chara
并重置n
以指向字符串的下一个字符,而不是递增chara
。您还未正确使用indexOf
- 只需将n = 0;
设置为以
答案 4 :(得分:0)
您的循环正在将字符(名称的第一个字符)与数字(名称的长度)进行比较。有几种方法可以完成您要完成的任务。
如果你想继续使用while循环,你应该跟踪一个充当计数器的变量,它计算你所在循环的迭代。这将取代chara变量。
function displayName(){
var str = prompt("enter your name:");
var len = str.length;
var count = 0;
while(count < len){
document.body.innerHTML += "<br>the letter " + str.charAt(count) + " is number " + (count+1);
count++;
}
document.body.innerHTML += "<br>the name entered is: " + str + "<br></br>" + "the length is " + len;
}
我已将document.write()
的调用替换为innerHTML
参数,因为它被视为更好的做法,但您可以使用其中任何一种。
顺便说一下,为这个任务使用for循环会更加语义化。