javascript - 更改数组字符串值的第一个(或任何)字符

标签 javascript arrays string set return

假设我有一个包含字符串值的数组,例如:

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/

相关文章:

javascript - JSON CSRF/盗窃攻击是否仍然可能?

javascript - 为 promise.all 中的每个 promise 设置超时

c - 将变量引用到现有数组

Javascript 程序不断输出错误的数组索引

ruby - 来自数据库的字符串中的 Rails 字符串插值

java - 为什么Java中字符串变量的声明是大写的?

javascript - 将数组转换为字符串 Javascript

javascript - react 独特的关键 Prop

javascript - iPhone 6 上缺少元素?

Javascript 异步等待代码执行顺序