goo blog サービス終了のお知らせ 

DEVELOPMENTOR*LEARNING RESOURCE LAB.

ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。(休止)

Array.freq 配列要素の出現数を求める

2006年10月12日 | prototype cast

配列の重複した要素があるとき、その要素の出現数を求めるArray.freqメソッドです。Array.freqメソッドはprototype.js v1.4.0を使うことを前提としています。


Array.freqメソッドは配列の要素をキー、出現数を値としたオブジェクトを返却します。

Object.extend(Array.prototype, {
  freq: function() {
    return this.inject({}, function(dest, value) {
      var key = value.toString();
      if (dest[key]==undefined)
        dest[key] = 0;
      dest[key] += 1;
      return dest;
    });
  }
});


キーは配列の要素をtoStringしたものを使います。ですので、配列の要素が「null」「undefined」「Object」のときその結果は曖昧です。要素が「constractor」や「toString」のときプロパティとメソッドを上書きしてしまう問題も残ります。どうすんべかな。


サクラエディタにHTMLエスケープを追加する

2006年10月12日 | デスクトップ

サクラエディタ(Sakura Editor)のマクロ機能を使って、選択したテキストをHTMLエスケープするメニューを追加します。

はじめにサクラエディタのインストールディレクトリに次のファイルを作成して保存します。

C:/Program Files/sakura/escapehtml.js
var s = Editor.GetSelectedString(0);
s = s.replace(/&/g, '&');
s = s.replace(/</g, '&lt;');
s = s.replace(/>/g, '&gt;');
s = s.replace(/"/g, '&quot;');
s = s.replace(/'/g, '&#039;');
Editor.InsText(s);

サクラエディタのメニューで[設定(O)]→[共通設定(C)]を選択して共通設定ダイアログを表示します。そしてマクロタグを選択します。

名前に「HTMLエスケープ」と入力してFileから「escapehtml.js」を選択します。そして設定ボタンをクリックします。その後OKボタンをクリックすれば完了です。

サクラエディタでテキストを選択してからメニューで[ツール(T)]→[登録済みマクロ(B)]→[HTMLエスケープ]を選択すると、選択したテキストがHTMLエスケープされます。