3

私は学生で、innerHTML に出力する JavaScript の「for」ループを書いています。文字列のすべての連結が最後に追加され、その後にコンマが続きます。最後の繰り返しの後にコンマが出力されないようにするにはどうすればよいですか? 念のため、コンマは課題の一部ではありません。実用的なアプリケーションを追加しようとしているだけです。jQueryはありません

window.onload = function(){
  var mySeven = 0;
  var printSeven = document.getElementById('multiples_seven');

  for (i=1; i <= 1000; i++){
      if (i % 7 == 0){
      mySeven += i;
      printSeven.innerHTML += i + ',' + ' ';
      }
  }
};

ありがとう!

4

4 に答える 4

10

join()代わりに使用する必要があります。それははるかにきれいで、エッジケースについて心配する必要はありません:

  var printSeven = document.getElementById('multiples_seven');
  var sevens = [];
  for (i=1; i <= 1000; i++){
      if (i % 7 == 0){
        sevens.push(i);
      }
  }
  printSeven.innerText = sevens.join(", ");

if()または、ステートメントと不要な反復を回避するアプローチ:

  var printSeven = document.getElementById('multiples_seven');
  var sevens = [];
  for (i = 7; i <= 1000; i += 7){
     sevens.push(i);
  }
  printSeven.innerText = sevens.join(", ");

そして、理解のために、これなしでこれを行う方法は次のjoin()とおりです。

  var printSeven = document.getElementById('multiples_seven');
  var maxValue = 1000;
  var list = "";

  for (i = 7; i <= maxValue; i += 7){
     list += i;
     if(i + 7 <= maxValue){
       list += ", ";
     }
  }
  printSeven.innerText = list;
于 2013-08-09T04:38:11.610 に答える
0

最後にいる場合よりも最初の項目にいる場合の方が簡単に確認できるため、番号の前にコンマを追加するだけです。

window.onload = function(){
  var mySeven = 0;
  var printSeven = '';

  for (i = 1; i <= 1000; i++) {
    if (i % 7 == 0){
      mySeven += i;
      printSeven += (printSeven.length > 0 ? ', ' : '') + i;
    }
  }

  document.getElementById('multiples_seven') += printSeven;
};
于 2013-08-09T06:06:44.177 に答える