2017-07-17 6 views
0

私は今Udacityのjavascriptの研究をしていますし、私を悩ますクイズもあります。私はルビーでそれを簡単に行う方法を知っていますが、これが私を殺しています。文字列をx回返すJavascriptループ

私は関数を呼び出し、 "ha" num回を返し、 "!"を追加する必要があります。ループの最後に。

私はこれを試しましたが、助けになりませんでした。非常にシンプルでなければなりません。

function laugh(num) { 
    for (var x = 0; num; x ++) { 
     return 'ha'; 
    } 
} 

console.log(laugh(3)); 
+1

関数が1回返します。 – davidxxx

+3

私は質問がそのように言われているのか疑問に思っています、あなたはたぶん3回戻ってほしくないでしょう、おそらく、3ヘクタールの文字列を返したいと思うでしょう。 「ハッハッハ!」のように。 1回のリターンが必要です。 –

+0

'return'はすぐに戻ります。 IOW、ループの最初のパスが戻り、次のパスは決して起こりません。明らかにそれはあなたの意図ではありません。 –

答えて

1

機能からはreturnしか1回しか使用できません。ループで必要な文字列を構築し、ループが完了した後に値を返します。

(注意:あなたが関数内で複数のreturnのステートメントを持つことができますが、できるだけ早くあなたがそれらのいずれかを打つと関数が実行を完了)

3

実はあなたも、ループを必要としません。ループに戻る

const laugh = num => 'ha'.repeat(num) + '!'; 
 

 
console.log(laugh(3)); 
 
console.log(laugh(5));

+0

ええ、私はループなしで.repeat(num)を使っていましたが、Udacityはループを使用するためのヒントを提供します。 –

+0

@ОлегЯкунинそれは単なるヒントであり、必要条件ではありません。 –

0

function laugh(num) { 
 
    var outString = ''; 
 
    for (var x = 0; x<num; x ++) { 
 
    outString += ' ha'; 
 
    } 
 
    return outString.substring(1) + '!'; 
 
} 
 

 
console.log(laugh(3));

0

全体の機能を返します。この作業を行うには、ループ内の文字列を連結し、連結された出力を返すことができます。また、あなたのループを間違ってフォーマットした場合、xがnumより小さいときにループを停止するように指示する必要があります。試してみてください:

function laugh(num) { 
 
    var laughString = ''; 
 
    for (var x = 0; x < num; x++) { 
 
    laughString += 'ha'; 
 
    } 
 
    return laughString + '!'; 
 
} 
 

 
console.log(laugh(3));

0
function laugh(input) { 
    var answer = ''; 
    for (var i = 0; i < input; i++) { 
    answer += 'ha'; 
    } 
    return (answer + '!'); 
} 

まず、空の文字列に変数を設定し、(それはあなたの答えになります) 次に、入力に応じてループループのために書く(あなたは) その後、forループ内に、応答文字列に 'ha'を追加します。 最後にforループの外側にあります(すべてのループを実行した後) 返信文字列プラス!

関連する問題