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汚染するから。
全然違うメソッドとして定義しておくならいいいか