给定一个带有参数 (TEXT) 的函数,每个单词中的第二个字母必须与最后一个字母交换。
我将文本拆分为单词数组,但如何交换字母?
我的代码:
function encryptThis(text) {
let textSplit = text.split(" ")
return textSplit.map( el => el.replace(el[1], el.at(-1) ) )
}
给定一个带有参数 (TEXT) 的函数,每个单词中的第二个字母必须与最后一个字母交换。
我将文本拆分为单词数组,但如何交换字母?
我的代码:
function encryptThis(text) {
let textSplit = text.split(" ")
return textSplit.map( el => el.replace(el[1], el.at(-1) ) )
}
贯穿
slice()
- 剪下必要的单词片段并按正确的顺序粘合它们您可以将每个单词中的第二个字母与最后一个字母交换,如下所示:
我们将字符串拆分为一个数组,
然后我们将每个单词逐个字母拆分为一个数组,
我们
将这些字母收集为单词(我们将数组转换为字符串)。
本质上,我的解决方案和以前的没有什么不同,只是描述得更详细一些。但在这里我建议一个小小的改进:打破文本加密和文字加密的逻辑。如果您突然需要代码,这将使测试代码变得更容易:
听起来不错,但前提是我们可以使用空格作为分隔符将句子分成单词。尝试
input
在单词后面插入标点符号、省略号或此列表中除空格之外的其他内容。您将看到程序如何立即开始意外地工作为了避免这种情况,我提出了另一种使用replaceAll的方法,它可以有一个函数作为第二个参数,该函数将接收所有出现的情况(以及更多)作为输入:
\p{L}
) 组成且长度为 3 或以上的单词 ({3,}
)PS为了更好地理解我使用的正则表达式,我推荐以下文章: