Javascript 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()仅适用于字符串,不适用于数组。您需要访问数组元素。每个数组元素包

我试图在数组的特定索引上使用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()
仅适用于字符串,不适用于数组。您需要访问数组元素。每个数组元素包含一个带有一个元素的字符串,您可以对该字符串使用
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对象,因此,只需对其进行迭代即可。