我正在研究这个卡塔: 编写一个函数,它接受一个或多个单词的字符串,并返回相同的字符串,但所有五个或更多字母单词都反转(就像这个Kata的名字一样)。传入的字符串只包含字母和空格。只有当存在多个单词时才会包含空格。
这不是最漂亮的代码,但是console.log如何打印预期的结果和返回的命令(我已经注释掉了)不起作用?
function spinWords(sentence){
function reverse(s) {
return s.split('').reverse().join('');
}
var words = sentence.split(" ");
for (var i=0; i<words.length; i++){
var word = words[i].toString();
var backwards = reverse(word);
if (word.length>=5){
console.log(backwards);
//return backwards;
} else {
console.log(word);
//return word;
}
}
}
答案 0 :(得分:1)
我猜你的主要问题是你试图在for循环中返回,这不会给你所有传入的单词,基本上你的if else语句将在第一次尝试时返回。
假设您希望看到正在注入的sentance
变量的完整结果:
function spinWords(sentence){
function reverse(s) {
return s.split('').reverse().join('');
}
var words = sentence.split(" ");
var strings = [];
for (var i=0; i<words.length; i++) {
var word = words[i].toString();
var backwards = reverse(word);
if (word.length>=5){
strings.push(backwards);
console.log(backwards);
//return backwards;
} else {
strings.push(word);
console.log(word);
//return word;
}
}
return strings.join(' ');
}
使用:
var sentance = spinWords('foood is great!')
console.log(sentance)
的结果:
"dooof is !taerg"