JavaScriptでArray.fill
Array.fill
配列の初期値を指定する方法の処理速度検証 (Kanasansoft Web Lab.)について。
Arrayをnullで初期化したい以外ではこれで要件を満たせるのかな…。速度はベンチマークをとっていないので分からない。evalは生理的に嫌いなのでnew Funciton(Functionでもいいけど)。eval()でもこと足りると思いますが…。
Array.fill = function(n, s) { s = Array(n + 1).join('"*",').replace(/\*/g, s.split('"').join('\\"')); return (new Function('return ['+ s.slice(0, s.length-1) +'];'))(); };
全置換
正規表現を使わない全置換。正規表現を利用する場合とどちらがはやいんでしょう?ベンチマークとってないのでこれも速度不明。
String.prototype.replaceAll = function(r, s){ return this.split(r).join(s); };
12月8日(土)のKanasan.jsに僕も参加したいと思います。宜しくおねがいいたしますm(__)m。寝坊しない。仕事の割り込みがないことが前提条件です!特に寝坊とか寝坊とか。
追記
蒲団の中で考えたけどこっちのほうがいいかなぁ…。*1
Array.fill = function(n, v) { var t = Array(n + 1).join('$,'); return (new Function('$', 'return ['+ t.slice(0, t.length-1) +'];'))(v); };
こっちのほうがいいかも…。エラー処理なければワンライン。*2
Array.fill = function(n, v) { if(n < 1){ throw new Error('A 1st argument must be a positive number.'); }; return (new Function('$', 'return ['+ Array(n).join('$,') +'$];'))(v); };