我试图弄清楚为什么我不能将toUpperCase方法分配给数组中的特定值(见下文)。我有点困惑,因为我认为对象是可变的并通过引用操纵?也许我正在向后看?
var ary = ["hello", "there", "world"];
ary[0][0] = ary[0][0].toUpperCase();
console.log(ary[0][0]); // returns lowercase h
任何澄清都会对我有所帮助。
答案 0 :(得分:1)
由于字符串在JavaScript中是不可变的,因此将新字符分配给String的索引将不会更改字符串。你需要像这样创建一个新的
ary[0] = ary[0][0].toUpperCase() + ary[0].substr(1);
# H
我们正在创建一个新的字符串,首字母大写,字符串的其余部分保持不变。