それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

JavaScript の配列でunique なモノを取り出す。

JScript書いてたら、配列でユニークなものを取り出したくなった。JScriptは古典的なECMAScriptに近いのでモダンなことが出来なくて困る。
結局次のようにした

  • 配列の値をハッシュキーに保存
  • ハッシュキーだけを取り出す

これでシンプルかな。if文出てこないので読みやすいよね

Array.prototype.uniq = function(){
  tmp = {};tmp_arr = [];
  for( var i=0;i<this.length;i++){tmp[this[i]] = i;}
  for( i in tmp){tmp_arr.push(i);}
  return tmp_arr;
}
a = [1,2,3,4,3,2,1]
WScript.Echo( a.uniq() ) //#=> [1,2,3,4]

うん。これで当面はしのげそうです。

ブラウザでjQueryやprototypeなど使う場合はやっちゃダメです。prototype汚染するから。

全然違うメソッドとして定義しておくならいいいか