TypeError:尝试在多重密度数组javascript中重新分配时,x为只读

TypeError:尝试在多重密度数组javascript中重新分配时,x为只读,javascript,arrays,Javascript,Arrays,我试图在多维数组中的x索引处重新分配一个值,但在标题中出现了错误。这是我的密码: var str = "SERR PBQR PNZC"; var arr = str.split(" "); for(var i = 0; i<arr.length;i++){ for(var j=0; j<arr[i].length;j++){ arr[i][j] = String.charCodeAt((arr[i][j]) - 13); } } var st

我试图在多维数组中的x索引处重新分配一个值,但在标题中出现了错误。这是我的密码:

  var str  = "SERR PBQR PNZC";
  var arr = str.split(" ");
  for(var i = 0; i<arr.length;i++){ 
  for(var j=0; j<arr[i].length;j++){
     arr[i][j] = String.charCodeAt((arr[i][j]) - 13);
   }
  }
var str=“SERR PBQR PNZC”;
var arr=str.split(“”);

对于(var i=0;i多维数组的赋值没有发生。在特定索引处的字符串赋值正在发生。字符串是不可变的,它们不能被赋值,因此您不能这样做

基本上发生了以下情况:

var arr = "SERR PBQR PNZC".split(" ");
var str = arr[0]; // "SERR", this is a string
str[0] = "o";     // doesn't work, can't assign to string at an index

您需要将这一点牢记在心来更改代码。也许您打算使用
数字
数组?

您可能希望:

var str=“你好世界”;
var arr=str.split(“”);
var数=[];
对于(变量i=0;i
String.charCodeAt()
是字符串上的一个方法,而不是一个独立的实用函数。您需要
arr[i].charCodeAt(j)
甚至
arr[i][j]。charCodeAt()
(因为它返回单个字符的字符代码)


另外,您需要修复括号-您正在尝试从字符串中减去13,而不是从字符代码中减去13。

我们可以看到数组吗?请添加
str
arr
。您也可以看看这里:您的问题到底是什么?错误不清楚吗?在您的示例中
x
在哪里?答案是什么代码应该做什么?输入是什么?预期的输出是什么?