Javascriptは1から100の整数を出力し、ループを使わず、再帰を使わない.


CSDNで1から100までの整数を循環出力しない方法を議論するスレッドのタイトルがフォーラムの1面に載っているのを見て、そこに入って混ぜて、いくつかのアルゴリズムを発表しました.
この問題はとても面白いと思います.プログラマーの思考には良い試練です.私たちが方向性だけを考えているかどうかを見てみましょう.
私は招待状の中で何度も返事をして、私が考えた主ないくつかの解決コードをここに貼りました.
これらは異なるように見えますが、実質的に差は多くありません.キーは100の長さの配列や文字列を短く構築することです.
(1)タイマー版:
i=0,k=[];j=setInterval('if(i>100){clearInterval(j);alert(k)}else{k[i]=++i}',20);

(2)配列版:

i=0;eval((new Array(101)).join('document.writeln(++i);'));

(3)文字列replace版:

eval("i=1;"+("..........".replace(/\./g,"..........").replace(/\./g,'document.writeln(i++);')));
 
または

document.write("..........".replace(/\./g,"..........").replace(/\./g,function(s,i){return i}));
 

(4)HTML版:以上のいずれかの方法で100文字の文字列を得ると、
  • :(LI要素の特性を巧みに利用した)
  • に置き換える.
    
    document.write('<ol>'+(new Array(101)).join('<li>')+'</ol>');
    
    最後に、HTMLページでイベントインタラクションもできるので、mousemoveなどのDOMイベントでもできます.