还有其他使用此.charAt()的方式吗?

时间:2018-07-14 03:06:31

标签: javascript

我有一个问题,当我在语句中使用input[index]时,反向词与inputString的值不匹配。但这在C#中有效。当我尝试在JavaScript中无法正常工作时。我想学习.char()方法的另一种替代方法。谁能解决我的问题?

strReverse = "";
input = document.getElementById("inputValue").value;
i = input.length;

for(var j = i; j >= 0; j--) {
     strReverse = strReverse + input.charAt(j); // i used input[index]  
}

1 个答案:

答案 0 :(得分:1)

如果您希望使用input[index]而不是input.charAt(),则需要解决设置i = input.length;的问题

因此,当您进入第一次迭代的循环时,j将等于i。这意味着您正在尝试访问等于字符串长度的索引处的字符(执行input[j]时)。但是,由于在javascript(和大多数语言)中数组和字符串索引从零开始,所以i(字符串的长度)没有索引,但是i-1却有索引,这将给出字符串中的最后一个字符。因此,如果要使用input[j]反转数组,则需要在for循环中以j的形式启动j = i - 1

查看示例示例:

strReverse = "";
input = "level";
i = input.length;

for(var j = i-1; j >= 0; j--) {
     strReverse = strReverse + input[j]; // i used input[index]  
}

if(strReverse === input) {
  alert(input +" is a palindrome!")
} else {
  alert(input +" is not a palindrome!");
}