反向单词Codewars练习语法问题



我尝试了反向单词codewars练习,最终我做对了。但我有一个我认为应该有效的解决方案,但事实并非如此,我不明白为什么(尽管我确信它就在我眼前(。以下代码正常返回字符串,而不是反向

function reverseWords(str) {
let wordsArr = str.split(" ");
wordsArr.map(e => e.split("").reverse().join(""));
return wordsArr.join(" ");
}

然而,当我将所有方法链接起来,而不是直接在wordsArr上使用map时,它工作得很好。

function reverseWords(str) {
let wordsArr = str.split(" ").map(e => e.split("").reverse().join(""));
return wordsArr.join(" ");
}

我想知道为什么会这样?谢谢

函数返回一个新数组。尝试存储返回的数组。像
wordsArr = wordsArr.map(e => e.split("").reverse().join(""));

Map不会改变原始数组,返回时也不会使用反向数组,而是使用原始单词Arr。你必须这样做:

const reverseWords = (str) => {
const wordsArr = str.split(" ");
const wordArr = wordsArr.map(e => e.split("").reverse().join(""));
return wordArr.join(" ");
}

除了其他好答案之外,没有必要将所有答案都串在同一行上,这可能会使阅读更容易。在所有操作完成后简单地return

function reverseWords(str) {
return str
.split(' ')
.map(word => word
.split('')
.reverse()
.join('')
).join(' ');
}
console.log(reverseWords('Welcome to Stack overflow'));

最新更新