RGB->FFFFFF形式の変換

RGBをFFFFFF形式に - PBD - 虹色センチメンタル - subtech
を参考にstyleでoutlineをなめらかに点滅させるを書きました。

フェイドさせるのにRGBを配列で扱ったほうがやりやすいので、

(1<<24|255<<16|255<<8|255).toString(16).slice(1)

の部分も配列でなんとかしたいけどreduceがないとなんともなりませんでした。

Array.prototype.reduce = function (fn, initialValue) {
  return ( this.length == 0 ) ? initialValue : this.slice(1).reduce(fn, fn(this[0], initialValue));  
};

var rgb = [0xc0, 0xfe, 0xee];
rgb.unshift(1);
[24,16,8,0].reduce( function (a, b) {
                    return (v.shift()<<a) | b } , 0 ).toString(16).slice(1);

だいぶんreduce使えるようになってきました。