Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将新值设置为str.charAt()_Javascript_String_Indexing_Char_Charat - Fatal编程技术网

Javascript 将新值设置为str.charAt()

Javascript 将新值设置为str.charAt(),javascript,string,indexing,char,charat,Javascript,String,Indexing,Char,Charat,我试图用一个新字符在字符串的某个索引处设置一个字符的值,我想知道使用charAt()方法是否可行。像这样的str.charAt(1)将首先返回字符串“e” let str = "hello"; str.charAt(1) = 'a'; str.charAt(1)然后将返回字符串“a” 我的预期结果是新字符串读作“hallo”。但这会导致一个未捕获的引用错误:赋值中的左侧无效。那么,使用这种方法是不可能的吗?是字符串原型上的一个函数,您正试图用这种语法覆盖它charAt()将返回索引处的字符,它

我试图用一个新字符在字符串的某个索引处设置一个字符的值,我想知道使用charAt()方法是否可行。像这样的
str.charAt(1)
将首先返回字符串“e”

let str = "hello";
str.charAt(1) = 'a';
str.charAt(1)
然后将返回字符串“a”

我的预期结果是新字符串读作“hallo”。但这会导致一个未捕获的引用错误:赋值中的左侧无效。那么,使用这种方法是不可能的吗?

是字符串原型上的一个函数,您正试图用这种语法覆盖它
charAt()
将返回索引处的字符,它是getter,而不是setter;因此,您需要定义自己的自定义方法来实现这一点,可以通过定义下面的snippet之类的纯函数,也可以通过在
String.prototype
上定义它来实现,这样您就可以在任何字符串上使用它

let str=“hello”;
函数替换索引(str、索引、字母){
让modifiedStr=[…str];
修改器[索引]=字母;
返回modifiedStr.join(“”)
}

log(replacestrandex(str,1,'a'))
您不能在JavaScript中改变字符串。您只能创建一个新的变量,并将其显式分配回
str
变量检查此答案是否回答了您的问题?是的。谢谢,我知道它们是不变的