簡體   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