Javascript 数组中的元素不改变值
我的函数旨在大写每个单词的第一个字母,但在for循环运行后,数组保持不变。我错过了什么 功能资本化{ var splitStr=str.split'; 对于let i=0;iJavascript 数组中的元素不改变值,javascript,arrays,string,Javascript,Arrays,String,我的函数旨在大写每个单词的第一个字母,但在for循环运行后,数组保持不变。我错过了什么 功能资本化{ var splitStr=str.split'; 对于let i=0;i
var word = splitStr[i];
您没有得到索引的引用,因此当您更新word时,它不会更新数组的索引
splitStr[i] = word[0].toUpperCase() + word.slice(1);
将返回值赋给数组本身 这是一个有效的解决方案- 功能资本化{ var splitStr=str.split'; 对于let i=0;i
function capitalize(str) {
var splitStr = str.split(' ');
for (let i = 0; i < splitStr.length; i++) {
var word = splitStr[i];
splitStr[i] = word[0].toUpperCase() + word.slice(1);
}
return splitStr.join(' ');
}
你不需要引用每个单词,而需要实际更改它。一个选项是使用map重新分配: 应按照以下步骤修改原始字符串
`var word = splitStr[i];
splitStr[i] = word[0].toUpperCase() + word.slice(1);`
我进一步删除了中间词变量
功能资本化{
var splitStr=str.split';
对于let i=0;i`var word = splitStr[i];
word = word[0].toUpperCase() + word.slice(1);`
`var word = splitStr[i];
splitStr[i] = word[0].toUpperCase() + word.slice(1);`