gpt4 book ai didi

javascript - 为什么我不能在 for-of 循​​环中将更新后的值赋给变量 'word' ?

转载 作者:行者123 更新时间:2023-12-02 23:54:58 24 4
gpt4 key购买 nike

为什么我无法使用此 for-of 循​​环更新数组“words”?

function capitalizeLetters(str) {
let words = str.split(' ');

for(var word of words)
word = word.charAt(0).toUpperCase() + word.slice(1);

return words.join(' ');
}

console.log(capitalizeLetters('i love javascript'));

最佳答案

您可以分配给word,但由于它是一个基元,而不是指向该区域中某个位置的指针,因此该值会被替换,但不会更新数组。您可以使用 Array.map() 代替:

function capitalizeLetters(str) {
return str.split(' ')
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
.join(' ');
}

console.log(capitalizeLetters('i love javascript'));

另一个选项是使用 String.replace() 以及单词中第一个字母(头)和其余字母(尾)的捕获组。然后更改大小写,并再次将它们与字符串文字组合:

function capitalizeLetters(str) {
return str.replace(/(\w)(\w+)/g,
(_, head, tail) => `${head.toUpperCase()}${tail.toLowerCase()}`
);
}

console.log(capitalizeLetters('i love javascript'));

关于javascript - 为什么我不能在 for-of 循​​环中将更新后的值赋给变量 'word' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55445021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com