2014-05-24 51 views
0

我想弄清楚爲什麼我不能將toUpperCase方法分配給數組中的特定值(請參見下文)。我有點困惑,因爲我認爲對象是可變的,並通過引用操縱?也許我正在向後看?Javascript分配一個方法到數組值

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

任何澄清將幫助我了很多。

+2

簡單,字符串是不可變的。 – thefourtheye

+0

JavaScript中的'string'像'Array'一樣工作 –

回答

1

由於字符串在JavaScript中是不可變的,所以將新字符分配給字符串的索引根本不會改變字符串。您需要創建這樣

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

我們正在創造的第一個字母一個新的字符串資本和字符串的其餘部分,因爲它是一個新的String。

相關問題