0
var elemText = document.getElementById("insert");
for (var k = 1; k <= 4; k++) {
  for (var j = 1; j <= k; j++) {
    elemText.innerHTML += ('*');
  };
  elemText.innerHTML += ('<br>');
};

取り壊す:

document.getElementById("insert").innerHTML = "";

コーディングエラーはありますか?ひどく非効率的ですか(これが唯一の理由ではないと思います)?テストの設定方法と関係がありますか?

4

1 に答える 1

1

コーディングエラーはありますか?

はい。<div>テスト #2 でを再初期化するのを忘れました。result = []テスト #1 で設定したように、空にする必要があります。ティアダウンでそれを行うだけでは十分ではなく、テスト #2 はクリアする前にテスト #1 よりもはるかに長いテキストを生成します。

また、テスト ケースの結果は同じではありません。<br />テスト #1 の要素も出力したいのでinnerHTML、そこでも使用する必要があります。現在のコードは<br>文字通りテキストとして出力されました。

テストセットアップの改善

ひどく非効率的ですか?

はい。で作業するのinnerHTMLは非効率的です。割り当てるたびに HTML パーサーが必要であり、非常に頻繁に使用しています。また、使用し+=ているため、毎回DOMをシリアライズする必要があります。

于 2013-01-27T17:05:47.927 に答える