函数返回一个新数组。尝试存储返回的数组。像
我尝试了反向单词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'));