我有一个问题,当我在语句中使用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]
}
答案 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!");
}