0

私は、カスタムオプションを使用してタイピングチューターを作成しています。

専門家ではありません (間違った人が間違った場所であることに腹を立てないでください) が、stackoverflow.com のような役立つフォーラムとトラフィック/人への貢献のおかげで、1 日か 2 日でそれを引き出すことができます。

すぐに、ここに!

    while (i < len+1){
      if(boxarray[i] == orgarray[i]){
    ++i;
        actualScore = i - 1;
      }

私はすでに検索しました.「==」演算子は役に立ちません.JSON.encodeには行きません. このページで同様の解決策に出会いました。しかし、私の場合、2 つの文を比較しながら各単語をループする必要があります。詳細は些細なことです。誰かが上記の解決を手伝ってくれれば、同じプロジェクトに文句を言って戻ってこないことを約束します。

あなたが私を助けるのに役立つなら、私はより多くのコードを入れています。

    var paratext = document.getElementById('typethis').innerHTML;    
    var orgstr = "start typing, in : BtXr the yellow box but. please don't shit." ;
    var boxtext = document.getElementById('usit').value; 
    var endtrim = boxtext;
    var actualScore;
    var orgarray = listToArray(orgstr," ");
    var boxarray = listToArray(boxtext," ");
    var len = boxarray.length;
    var i = 0;
    var actualScore; //note var undefined that's one mistake I was making [edit]
    if(orgstr.indexOf(boxtext) !== -1){
    while (i < len+1){
      if(boxarray[i] == orgarray[i]){
    ++i;
        actualScore = i - 1;
       }
     }      
    alert(actualScore);
    }
4

6 に答える 6

0

あなたの問題は

if (boxarray[i] = orgarray[i])

単一の = は代入演算子です。に置き換えます

===

比較になります。

于 2014-05-09T19:42:35.690 に答える
0

入力が文字列としての 2 つの文であるとしましょう。

次に、最初に 2 つの一時的な文字列を作成し、単語以外の文字 (句読点など) をすべて削除します。文を単語区切り記号で文字列配列に分割します。

次に、整数変数をスコアに割り当てることができます。2 つの文の外側のループと内側のループを作成します。文中の単語が一致したら、変数を 1 増やし、2 番目の文から単語を削除し (単語を単語以外の文字に置き換えます)、内側のループから抜け出します。

また、代わりにこの演算子を単語比較に使用します。

===
于 2014-05-09T19:29:27.647 に答える
0

あなたは割り当てている比較していません

if(boxarray[i] = orgarray[i]){ 
              ^^^

したがって、各反復で true になります。タイプミスを修正して、実際に必要なチェックを実行します

if(boxarray[i] === orgarray[i]){ 
               ^^^

また、スコアの計算方法が間違っているようです。あなたは次のようなことをしているはずです

var score = orgstr.length;
while...
    if(boxarray[i] === orgarray[i]){ 
        score--;
    }
于 2014-05-09T19:42:43.240 に答える