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

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

Enumerable#eachはbreakできます

JavaScript prototype.js

prototype.jsのインポートで利用可となる、「Enumerable#each()」ですが、これちゃんとbreakできるんですね。具体的には、「throw $break;」とすることで、以降の要素の列挙がキャンセルとなります。

var out = document.getElementById( "out" );
var array = [1,2,3,4,5,6]

// 配列を列挙
var sum = 0;
array.each( function( item, index ) {
  if ( index > 3 ) throw $break // $breakをthrow すると列挙を停止できる。
  sum += item;
});
out.innerHTML += sum + "<br/>"; // 10

// $breakは内部的にeachを利用しているEnumerableのメソッドでも使える。
out.innerHTML += array.inject( 0, function( sum, item, index ) {
  if ( index > 3 ) throw $break
  sum += item;
  return sum
}) + "<br/>"; // 10

実行結果はこちら

いやー、芸が細かい。