求助:JavaScript实现字符串大小写互换功能遇到问题(附代码)
问题排查与正确实现方案
你的代码逻辑出现了偏差——当前的判断是检查整个字符串是否完全小写,然后决定把整个字符串转成全大写或全小写,这和你想要的「逐个字符反转大小写」的需求不匹配。
举个例子,对于 "oMaR",因为它不是全小写字符串,所以你的代码会直接把它转成全小写的 "omar",而不是你期望的 "OmAr"。
修正后的代码
let friends = [ "oMaR", "mOhaMed", "tAwFIk", "aBdO", "OmrAn", "MoHanD", "AbdOlLaH" ]; let result = friends.map(name => { // 将字符串拆分为单个字符数组,逐个处理大小写反转 return name.split('').map(char => { // 对每个字符单独判断:如果是大写则转小写,反之转大写 return char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase(); }).join(''); // 将处理后的字符数组重新拼接为字符串 }).join(' '); // 将所有处理后的名字用空格连接 console.log(result); // 输出结果: OmAr MohaMeD TaWfiK AbDo OMrAn mOhAnD aBDoLlAh
代码解释
- 拆分字符:用
split('')将每个名字拆成单个字符的数组,这样我们就能对每个字符单独处理。 - 逐个反转大小写:对每个字符判断,如果它等于自身的大写形式(说明是大写字符),就转成小写;否则转成大写。
- 重新拼接:处理完所有字符后,用
join('')把字符数组变回完整的名字字符串,最后再用join(' ')把所有名字连接成空格分隔的字符串。
这样就能完美实现你想要的「字符串中大写转小写、小写转大写」的功能啦!
内容的提问来源于stack exchange,提问作者مår Tåwfêk
相关产品推荐
相关产品推荐

