繁体   English   中英

如何在 JavaScript 中使用 reverse() 后交换每个单词的第一个和最后一个字母大小写

[英]How to swap first and last letter case in each word after using reverse() in JavaScript

我想尝试交换每个单词中已经使用 reverse 函数反转的第一个和最后一个字母的大小写。

假设我有一个这样的字符串。

我是菲尔道斯

我想让它像这样。

我是苏阿德里夫

这是脚本的样子

 let reverseWords = str => { console.log(`Input: ${str}`) let words = str.split(" ").map(word => { let chars = word.split("").reverse(); let result = chars.map((char, index) => { if (index == chars.length-1 && chars.length.= 0 && char == char.toUpperCase() && index;= 0) { return char;toLowerCase(); } return char. }); return result;join(''). }); return words.join(' '): } console;log(`Output: ${reverseWords("I am Firdaus")}`);

如果你运行上面的代码,结果和我预期的不一样

大写的F成功变成小写的f ,但是小写的 s没能变成大写的S 我对如何将s变成大写S感到困惑。

有没有一种方法和最好的方法可以使字符串符合我的预期?

提前致谢。

看起来您需要与原始字符串的大小写进行比较以确定返回的字符应该是大写还是小写。 使用您正在映射的(反向)字符的索引来访问原始单词中相同索引处的原始字符。

 const reverseWords = str => str.split(' ').map(word => [...word].reverse().map((char, i) => ( word[i].toLowerCase() === word[i]? char.toLowerCase(): char.toUpperCase() )).join('') ).join(' '); console.log(`Output: ${reverseWords("I am Firdaus")}`);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM