array.push
まず、これはJSONとは関係ありません。:-)
117,118
あなたのコードは最初になどを出力しません。Chrome ではこのように表示されます。空白のない行に関連する Chrome の内部制限またはバグに達しているようです。Firefox では、それは行われません。
基本的に、コードは改行なしで配列を繰り返し出力しています。したがって、ループの最初の繰り返しで、出力します
1
...改行なし。2 回目の反復では、1,2
改行なしで出力するため、次のようになります。
11,2
...そして 3 番目に、次のように出力します1,2,3
。
11,21,2,3
...など、非常に長い列ができるまで続けます。何らかの理由で、Chrome は最終的にそれを失い、一連のスペースとそれに続くテキストを少しごちゃ混ぜに表示します。
document.write
おそらく、ステートメントを移動して、最後に最終的な配列を出力したいと思うでしょう。document.writeln
別の方法として、各行の最後に改行を入れる which を使用することもできます(これは Chrome を喜ばせるようです。ただし、もちろん、HTML の改行は単に結果としてスペースであり、実際の改行ではありません)。
document.write
しかし、(たとえば)に追加するなど、より現代的なものを使用する方がはるかに優れていますdocument.body
:http://jsfiddle.net/CLmYW/
var value = [];
for (var i = 1; i <= 300; i++) {
value.push(i);
display(value);
}
function display(msg) {
var p = document.createElement('p');
p.innerHTML = msg;
document.body.appendChild(p);
}
...うまく出力します
1
1,2
1,2,3
1,2,3,4
1,2,3,4,5
1,2,3,4,5,6
1,2,3,4,5,6,7
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8,9
...等々。
console.log
また、作業中に状態を確認するのにも非常に役立ちます。最新のすべての主要ブラウザの開発ツールでサポートされています。
JSON.stringify
;を削除したことにも注意してください。行っていたのは、インデックス カウンターの文字列バージョンを返すことだけでした。出力では、配列内の数値が実際に数値か文字列かは問題ではありません。