CNode

js中如何根据字符串的指针进行字符串修改,跪求,急

问答
Zzy445566发布于9 年前最后回复9 年前8 回复4434 浏览0 收藏

就比如:

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)

C
CRAZYFAKE#2·9 年前

Buffer或者1楼兄弟说的那样 也是可以变相实现的

L
liujavamail#3·9 年前
a.split("").map(function(c, index) {
   if(index == 0) {
      c = c.toLocaleLowerCase()
  }
  return c
}).join("")
V
vincentLiuxiang#4·9 年前

字符串是不可变的。首字母要小写,需要在堆里重新开辟一块内存,与原先的字符串是两段不同内存空间。

Z
zy445566#5·9 年前
引用 vincentLiuxiang字符串是不可变的。首字母要小写,需要在堆里重新开辟一块内存,与原先的字符串是两段不同内存空间。

@vincentLiuxiang 真就没直接改变a[0]的办法了?如果是开一个字符串的空间还好,但是如果全部重新开辟的而且这个字符串很长的话,感觉血亏

W
wxs77577#6·9 年前

你说的应该是这个吧: a[0].toUpperCase() + a.slice(1)

N
nnliang#8·9 年前

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

参与回复
登录后即可参与回复。登录