Leetcode with Javascript 错误记录

84 阅读1分钟

2129. 将标题首字母大写

给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 :

  • 如果单词的长度为 1 或者 2 ,所有字母变成小写。
  • 否则,将单词首字母大写,剩余字母变成小写。 请你返回 大写后 的 **title 。

错误1

修改切分后的字符串尝试使用str in splitArray,这样str 并不是数组元素的值,而是数组元素的索引。

for (str in splitArray){ 
    if([...str].length <= 2){ 
        str = str.toLowerCase() 
    } 
    else{ 
        str = str[0].toUpperCase() + str.slice(1).toLowerCase() 
        } 
    }
}

正确的写法应该是使用 for (let i = 0; i < splitArray.length; i++)通过splitArray[i]访问并原地修改。

错误2

重新拼接字符串时尝试使用

var res = '' 
for (str in splitArray){ 
    res += str 
}

同样仅仅访问到了数组下标,应该通过of去访问

for (const str of splitArray){ 
    res += str + ' ' 
}