js中如何根据字符串的指针进行字符串修改,跪求,急
就比如:
var a = 'UserAuth';
a[0] = a[0].toLowerCase();
console.log(a[0].toLowerCase());
console.log(a[0]);
console.log(a);
输出结果:
u
U
UserAuth
我仅仅要将首字母小写,有什么办法能够直接修改a[0]的值,之前实现过后来给忘了 如果说是js字符串截取的方法那就不用说了
8 回复
a.split("").map(function(c, index) {
if(index == 0) {
c = c.toLocaleLowerCase()
}
return c
}).join("")
字符串是不可变的。首字母要小写,需要在堆里重新开辟一块内存,与原先的字符串是两段不同内存空间。
@vincentLiuxiang 真就没直接改变a[0]的办法了?如果是开一个字符串的空间还好,但是如果全部重新开辟的而且这个字符串很长的话,感觉血亏
你说的应该是这个吧: a[0].toUpperCase() + a.slice(1)
@zy445566 用buffer存储字符串就可以随便改了
@zy445566 只要有字符串修改,都会新开辟内存
Buffer
或者1楼兄弟说的那样 也是可以变相实现的
不管你能不能看到,只要字符串发生修改,都会开辟新的内存