js中如何根据字符串的指针进行字符串修改,跪求,急
发布于 7 年前 作者 zy445566 3915 次浏览 来自 问答

就比如:

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楼兄弟说的那样 也是可以变相实现的

不管你能不能看到,只要字符串发生修改,都会开辟新的内存

回到顶部