我试图弄清楚为什么我不能将toUpperCase方法分配给数组中的特定值(请参见下文)。我有些困惑,因为我认为对象是可变的并且可以通过引用来操纵?也许我正在向后看?

var ary = ["hello", "there", "world"];
ary[0][0] = ary[0][0].toUpperCase();
console.log(ary[0][0]); // returns lowercase h


任何澄清都会对我有很大帮助。

最佳答案

由于字符串在JavaScript中是不可变的,因此为字符串的索引分配新字符根本不会更改字符串。您需要像这样创建一个新的字符串

ary[0] = ary[0][0].toUpperCase() + ary[0].substr(1);
# H


我们正在创建一个新字符串,第一个字母大写,其余字符串保持原样。

关于javascript - Javascript为数组值分配方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23848311/

10-10 09:11