2016-05-23 20 views
-3

私はこのKataに取り組んでいます: 1つ以上の単語の文字列を受け取り、同じ文字列を返しますが、5つ以上の文字の単語がすべて逆の(このカタの名前と同じように)戻ります。渡される文字列は、文字とスペースのみで構成されます。スペースは、複数の単語が存在する場合にのみ含まれます。なぜconsole.logは機能しますが返されませんか?

これは最も美しいコードではありませんが、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; 
    } 
    } 
} 
+3

「動作しません」と定義します。あなたはそれが何をすることを期待しているのですか? – deceze

+0

私はそれが返された値をどのように使用しているかと関係があると思います。あなたはそのコードを私たちに示していません。 – ceejayoz

+2

'return'文のコメントを外すと、' for'ループの最初の繰り返しに戻ります。リターンすると、関数は終了するので、ループは続行できません。 –

答えて

1

私はあなたの主な問題は、あなたが他のステートメントが最初itterationに戻ります場合は、あなたの基本的に、あなたがで渡しているすべての単語を与えることはありませんforループの中に戻るしようとしているということだと思います。

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"

あなたが注入しているsentance変数の完全な結果を見るために期待していると仮定すると、

+0

ありがとう!それは私の混乱の一部をクリアするのに役立ちます:console.log対復帰。 –

+0

それが役に立った場合は上記のチェックをクリックして回答を受け入れることができます:) –

関連する問題