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」のときプロパティとメソッドを上書きしてしまう問題も残ります。どうすんべかな。


最新の画像もっと見る