无法将JS中的单词大写

时间:2015-06-11 12:21:50

标签: javascript arrays

我想把整个单词改成大写字母。我的方法有什么问题,因为单个字母 toUpperCase 工作正常

var name = "gates";
for (var i=0; i< name.length; i++){
name[i] = name[i].toUpperCase();
}
name;

所以事情是&#34;你好世界&#34; .toUpperCase()正如预期的那样正常工作。为什么数组中循环的单个字符无法按预期工作! 这是数组/字符串中的某些属性,特别是在JS 中吗?

正如RGraham所说,字母不能修改,我不理解社区的负面反馈。即使这个问题似乎也是有效的。

5 个答案:

答案 0 :(得分:4)

这不起作用的原因是使用数组语法访问字符串是只读。根据{{​​3}}:

  

对于使用括号表示法的字符访问,尝试删除或   为这些属性分配值将不会成功。属性   涉及既不可写也不可配置。 (看到   MDN docs了解更多信息。)

因此,console.log(name[0])可行,但name[0] = "G";不会更新name变量。

答案 1 :(得分:2)

你不需要遍历这些字母,只需这样做:

var name = "gates";
name = name.toUpperCase();

答案 2 :(得分:2)

字符串在大多数语言中是不可变的,这意味着,您无法更改单个字符或添加内容,而无需使用新字符。

${all[*]: -1}

会给你你需要的东西,但是一个新的全大写字符串放在变量'name'中。

答案 3 :(得分:1)

符合http://www.w3schools.com/jsref/jsref_touppercase.asp

var str = "Hello World!";
var res = str.toUpperCase();

答案 4 :(得分:1)

http://www.w3schools.com/jsref/jsref_touppercase.asp

var str = "Hello World!";
var res = str.toUpperCase();

结果:

HELLO WORLD!