我的函数旨在将每个单词的第一个字母大写,但在 for 循环运行后,数组没有改变。我错过了什么?
function capitalize(str) {
var splitStr = str.split(' ');
for (let i = 0; i < splitStr.length; i++) {
var word = splitStr[i];
word = word[0].toUpperCase() + word.slice(1);
}
return splitStr.join(' ');
}
console.log(capitalize('my test'));
最佳答案
只需将 word =
替换为 splitStr[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(' ');
}
console.log(capitalize("this is it"));
原因:因为您没有在原始字符串 splitStr
中更新它。 toUpperCase
不会修改原始元素,而是返回更新后的值,因此您需要将其分配回该特定字符串索引来进行修改。
关于javascript - 数组中的元素不改变值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50994296/