为什么这段代码不能替换每个单词的第一个字母?

时间:2019-04-08 16:59:05

标签: javascript arrays node.js reference pass-by-reference

我试图替换每个单词的第一个字母,并想出了这段代码。有谁知道为什么它不起作用?

name = 'EFEIN DOED'
name.split(' ').map(b => {
   b = b.toLowerCase();
   console.log(b);
   b[0] = 3;
   console.log(b);
   return b;
}).join(' ');

谢谢。

1 个答案:

答案 0 :(得分:3)

您的一般想法是正确的,除了字符串是不可变的,因此不能以这种方式进行编辑。这是一个返回'3fein 3oed'的替代方法:

name.split(' ').map(b => '3' + b.toLowerCase().substring(1)).join(' ');