Javascript 是否有使用此.charAt()的其他方法?

Javascript 是否有使用此.charAt()的其他方法?,javascript,Javascript,我有一个问题,当我在语句中使用input[index]时,反向单词与inputString的值不匹配。但这在C#中有效。当我在JavaScript中尝试时,它不起作用。我想了解.char()方法的其他替代方法是什么。有人能解决我的问题吗 strReverse = ""; input = document.getElementById("inputValue").value; i = input.length; for(var j = i; j >= 0; j--) { strR

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

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

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

请查看代码段以获得一个工作示例:

strReverse=”“;
输入=“级别”;
i=输入长度;
对于(var j=i-1;j>=0;j--){
strReverse=strReverse+input[j];//我使用了input[index]
}
if(strReverse==输入){
警报(输入+“是回文!”)
}否则{
警告(输入+“不是回文!”);

}
但您的代码按原样工作。你能不能提供一个测试输入,但它不能
strReverse=input.split(“”).reverse().join(“”)
FTWI怀疑这在C#中是否有效。它使用与大多数语言相同的索引方法,因此当
j=input.length
这个问题不完整时,
input[j]
没有任何内容。运行这两个代码段的结果是什么。这应该很容易调试,您应该转储
input.charAt(j)
input[index]
,看看它们是否不同。@JaromandaX
input.split(“”).reverse().join(“”)
不适用于很多unicode字符。请停止推荐这个。改用
Array.from()
。在您的控制台中尝试此操作:
“对不起,我犯了错误。我使用索引而不是j。我真正的问题是使用输入[j]它与输入值不匹配。我使用了此代码。好的,但它现在应该可以工作了。请查看代码片段again@LizQuenUpdate太好了!请确保标记您的问题答案:)明白了!现在我知道了我真正的问题:)访问数组之类的字符串不适用于高阶unicode字符。只需使用
Array.from
来打开stri一个数组。