2011-07-16 13 views
0

私は初心者であり、学生です。私は誰かが私を助けることを望んでいます。私はプログラムを3つの機能に分割する必要がある課題を持っています。最初の文はユーザーからの文を受け取り、2番目の文は各単語の長さに応じて文を新しい「豚言語」に変換し、3番目の文は結果をコンソールに表示します。私はこのプログラムの中核を果たしましたが、戻り文字列をクリアするのに問題があります。具体的には、ユーザーがすべての3つのステップを完了すると、プログラムの3番目の部分に入り、結果を再度確認することはできません。私は彼らに最初に戻らなければならない。このことをあまりにも引き出す​​ことは申し訳ありませんが、それを他の方法で説明することはできません。ここ
は私のコードです:関数が処理された後の文字列戻り値の削除

function prog1(){ 
var userLang = prompt("Type in your sentence"); 
//If the user enters an empty string 
    if(userLang == ""){ 
     console.log("You must enter a sentence"); 
    } 
//If the user presses cancel 
    else if(userLang == null){ 
     wantToQuit = true; 
    } 
//If the user enters in a good string 
    else { 
     console.log("Thank you, now go to program 2"); 
     been2prog1 = true; 
     return userLang; 
    } 
} 

function prog2(){ 
//sets newLang = userLang and splits the string 
var newLang = prog1Lang.split(" "); 

//enters loop to find length of each split word 
var x = 0; 
for(x = 0; x < newLang.length; x++){ 

//if it's 5 or less words, add -oink  
    if ((newLang[x].length) <= 5){ 
     newLang[x] += "-oink"; 
    } 
//if it's more than 5 words, add -a 
    else { 
     newLang[x] += "-a"; 

    }  

} 
**newLang.join(" ");** 

//put the string back together 

console.log("String converted"); 
been2prog2 = true; 
return newLang; 
} 

function prog3(){ 
var endLang = prog2Lang; 
console.log(endLang); 
**delete prog2Lang;** 

} 

上で見たように私は、うまくいくかもしれない「削除」を考えていたが、私はすべてのすべての何もしませんでした。それから私はブール論理を考えていましたが、どうやってそうするかはわかりません。どんな助けでも大歓迎です。

もう一つ最後に、私の弦を一緒に戻す方法についても悩んでいます。現在は、コンソールの中で配列の一部としてログに記録し、各単語を引用符とコンマで区切ります。私は.join()を探しました。私はそれがトリックを行うだろうと思ったが、どちらもうまくいかないようだ。私は関数2のif else文の中に入れますが、それを実行するとちょっと変わってしまいますので、この問題のポインタも非常に高く評価されます。

ありがとうございました!

答えて

0

自体にnewLang.joinを割り当てる試してみてください。..

newLang = newLang.join(" "); 
+0

ありがとうございました!完璧に働いた。私は文法について私の経験の浅い人にこれをチョークしたいと思います。再度、感謝します! –

+0

お寄せいただきありがとうございます。 javascriptのJoinメソッドは、配列の代わりに、結合された文字列に変換する代わりに、配列から作成するすべての新しいオブジェクトを返します。だからあなたはそれを任意の変数に割り当てることができます。配列をもう必要としないので、それを自己に割り当てるのはきちんとしており、新しいスティッキングオブジェクトが配列を置き換えます。 –

+0

あなたが私に見せてくれたので、今、完璧な意味があります。私は10時間ほど前からすべてを見つめた後、迷子になってしまった。 :) –

0

私は他のビットは、あなたがたとのトラブルを抱えたことだったのかわからなかった、私は少し混乱していました。

あなたがやろうとしているすべての文字列変数が、その後..

prog2Lang = null; 

or 

prog2Lang = ""; 

nullはnullオブジェクトであり、「」空の文字列で出てクリアされている場合。

これはあなたの後でしたか?

+0

ええ、私は3番目の関数を通過した後に文字列をクリアしようとしています。私は上記の両方の例を第3のプログラムに入れましたが、どちらもうまくいきませんでした。 –

+0

3つ目の関数を実行した後で、ユーザーがメインメニューに3を入れ直して同じ結果を得られないようにするには、文字列を入力する必要があります。 –

+0

それは意味がありますか? –

関連する問題