読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

動かないと思いきや、ちゃんと動くJavaScriptコード

昨日のコードは動作しませんが、以下のコードはちゃんと動作します。

Array.prototype.each = function( proc, self ) {
  for ( var i=0; i<this.length; i++ ) proc.call( self, this[i], i, this );
}

function main() {
  var stdout = document.getElementById( "out" );

  ["mii","tora","shiro"].each( function(item) {
   stdout.innerHTML += item + "<br/>";
  });

}

実行結果はこちら

あれ、これ昔試して動かなかった覚えがあるんだけど!と思ったら、ActionScriptだった。以下のActionScriptコードはコンバイルエラーになります。

package {

  import flash.display.*;
  import flash.text.*;

  public class Sample extends Sprite  {

    public function Sample(){

      // 結果の表示用
      var stdout:TextField = new TextField();
      stdout.width = 500;
      stdout.height = 500;
      addChild(stdout);
      stdout.text = "aaa";

      // ↓のコードはコンパイルエラー。
      ["mii","tora","shiro"].forEach( function(item:*,i:int,arr:Array):void {
        stdout.text += item + "\n";
      });

    }
  }
}

せっかくforEachが組み込みで用意されているのに、これは残念。何とかしてほしいところですな。なお、「()」をつければ動作するようになります。

      (["mii","tora","shiro"]).forEach( function(item:*,i:int,arr:Array):void {
        stdout.text += item + "\n";
      });