这不起作用,它超出了我的范围。这可能是我浏览器中的错误吗?使用Chrome版本43.0.2357.81 m
var array = ['test', 'this'];
array[0][0] = 'T';
console.log(array);
// expected result ["Test", "this"];
// actual result ["test", "this"]
这也不起作用。
array.forEach(function(value, index, a) {
a[index][0] = value[0].toUpperCase();
});
答案 0 :(得分:1)
我们无法处理字符串的索引。但是,您可以替换整个字符串(array [0] ='Test')或执行以下操作:
var firstString = array[0].split('');
firstString[0] = 'T';
array[0] = firstString.join('');
如果您希望将不同单词的第一个字母大写,我建议您编写辅助函数来执行此操作。
答案 1 :(得分:0)
你不能像这样修改 String ,它是一个原始的
如果有人可以提供标准的摘录,那就太棒了。
逻辑在§8.7.2 of the ES5 spec中描述,特别是4.a。
如果
HasPrimitiveBase(V)
为false
,则将put设为base的[[Put]]
内部方法,否则设为下面定义的特殊[[Put]]
内部方法。
然后特殊[[Put]]
的注释(如果 HasPrimitiveBase(V)
返回true
,如果基值是布尔值,字符串或数字。)
在上述方法之外无法访问步骤1中可能创建的对象
即。通过设置你创建一个具有属性集的新对象,但是这个对象不是 String 你有
的引用