假设我有一个包含字符串值的数组,例如:
var foo = ["Hello", "World"];
我可以通过以下方式返回每个数组元素的第一个字符:
foo[0][0]; // Will return "H"
foo[1][0]; // Will return "W"
但是,当尝试使用类似的方法更改这些字符的值时,它不起作用。我的意思是这样做是行不通的:
foo[0][0] = "J"; // Will not change "H" to "J".
这不是什么大问题,因为我知道其他方法可以做到这一点,例如:
foo[0] = "J"+foo[0].substsring(1); // Hello --> Jello
但是我很好奇为什么之前的方法不行呢?编辑:做了一些摆弄,显然它一开始根本不适用于字符串,而不仅仅是数组中的字符串。我想我误以为字符串就像数组一样。我可以通过调用它在字符串中的位置来返回某些字符,类似于调用数组索引的工作方式,但更改所述索引不成立。
最佳答案
来自 Javascript String引用:
For character access using bracket notation, attempting to delete or assign a value to these properties will not succeed. The properties involved are neither writable nor configurable. (See Object.defineProperty() for more information.)
关于javascript - 更改数组字符串值的第一个(或任何)字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937125/