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

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

Hashが空か判定したい

JavaScript

JavaScriptのオブジェクトはHashのように使えますが、素のままだと空かどうかを判定するのも一苦労なんだよなー。一行で書くとちょい長いので、関数が必要な感じ。

/**
 * ハッシュが空かどうか判定する。
 */
function isEmpty(hash) {
  for ( var i in hash ) return false;
  return true;
}
...
out.innerHTML += '{} : ' + isEmpty({}) + "<br/>";
out.innerHTML += '{a:"aa"} : ' + isEmpty({a:"aa"}) + "<br/>";

実行結果はこちら

うーん、やはりここはprototype.jsのHashを使うべきか・・・。これを使うと以下のように多少さくっと書けます。

// prototype.jsのHashを使えば多少楽には書ける。
out.innerHTML += '$H({}).size() == 0 : ' + ($H({}).size() == 0) + "<br/>";
out.innerHTML += '$H({a:"aa"}).size() == 0 : ' + ($H({a:"aa"}).size() == 0) + "<br/>"

実行結果はこちら

なお、性能的には要素を全て列挙しないという点で前者の方が早いはずなので、大量のエントリを含む可能性があるHashを評価する場合はご注意。