Javascript str.charCodeAt()无法处理数组
我试图在数组的特定索引上使用str.charCodeAt()。 这是不起作用的代码:Javascript str.charCodeAt()无法处理数组,javascript,Javascript,我试图在数组的特定索引上使用str.charCodeAt()。 这是不起作用的代码: function rot13(str) { str = str.split(""); for (i = 0; i < str.length; i++) { str[i] = str.charCodeAt(i); } return var1; } rot13("SERR"); charCodeAt()仅适用于字符串,不适用于数组。您需要访问数组元素。每个数组元素包
function rot13(str) {
str = str.split("");
for (i = 0; i < str.length; i++) {
str[i] = str.charCodeAt(i);
}
return var1;
}
rot13("SERR");
charCodeAt()
仅适用于字符串,不适用于数组。您需要访问数组元素。每个数组元素包含一个带有一个元素的字符串,您可以对该字符串使用charCodeAt()
str[i] = str[i].charCodeAt(0);
但是,实际上没有必要首先将字符串拆分为数组。可以为结果数组使用不同的变量
函数rot13(str){
var结果=[];
对于(变量i=0;i
charCodeAt()
仅适用于字符串,不适用于数组。您需要访问数组元素。每个数组元素包含一个带有一个元素的字符串,您可以对该字符串使用charCodeAt()
str[i] = str[i].charCodeAt(0);
但是,实际上没有必要首先将字符串拆分为数组。可以为结果数组使用不同的变量
函数rot13(str){
var结果=[];
对于(变量i=0;i 控制台日志(rot13(“SERR”)代码>通过映射返回字符代码的字符数组,您可以使用更实用的方法
constrot13=(str)=>str.split(“”).map(x=>x.charCodeAt(0))
console.log(
rot13(“SERR”)
)
通过映射返回字符码的字符数组,您可以使用更实用的方法
constrot13=(str)=>str.split(“”).map(x=>x.charCodeAt(0))
console.log(
rot13(“SERR”)
)
看起来您在这里遇到了多个问题
str = str.split("");
当您这样做时,str
将成为一个数组,而不再是一个字符串
。这就是你出错的原因
您所需要做的只是删除与拆分相关的代码,在进行小的修复之后,它应该可以正常工作
function rot13(str) {
var var1=[];
for (i = 0; i < str.length; i++) {
var1[i] = str.charCodeAt(i);
}
return var1;
}
函数rot13(str){
var var1=[];
对于(i=0;i
看起来您在这里遇到了多个问题
str = str.split("");
当您这样做时,str
将成为一个数组,而不再是一个字符串
。这就是你出错的原因
您所需要做的只是删除与拆分相关的代码,在进行小的修复之后,它应该可以正常工作
function rot13(str) {
var var1=[];
for (i = 0; i < str.length; i++) {
var1[i] = str.charCodeAt(i);
}
return var1;
}
函数rot13(str){
var var1=[];
对于(i=0;i
请注意,您可能不需要将字符串拆分为数组,因为字符串是一个iterable对象
函数rot13(str){
返回数组.from(str,(char,i)=>str.charCodeAt(i))
}
控制台日志(rot13(“SERR”)代码>仅此而已,但请注意,您可能不需要将字符串拆分为数组,因为字符串是一个iterable对象
函数rot13(str){
返回数组.from(str,(char,i)=>str.charCodeAt(i))
}
控制台日志(rot13(“SERR”)
您编写了str.charCodeAt
,而不是str[i].charCodeAt
。通常最好避免混淆名称,例如名为str
的变量,该变量有时包含字符串,有时包含数组。为什么返回var1
它不存在于函数中?返回var1
,但从不定义它?您肯定不需要将字符串拆分为数组,String
是一个iterable对象,因此,只需对其进行迭代即可。您编写了str.charCodeAt
,而不是str[i]。charCodeAt
。通常最好避免混淆名称,例如名为str
的变量,该变量有时包含字符串,有时包含数组。为什么返回var1
它不存在于函数中?返回var1
,但从不定义它?您肯定不需要将字符串拆分为数组,String
是一个iterable对象,因此,只需对其进行迭代即可。