Array.stringFilled
「配列の初期値を指定する方法」の「一文字の文字列しか指定できない制限」の打破を試みる (Kanasansoft Web Lab.)
ループして一つずつ代入すればいいような?(そんな野暮はしない前提かな)
制御文字を使うとか。
Array.stringFilled = function(num, str){ if((num = Number(num)) > 1 && str && str.constructor == String){ var sep, i = 32; while(i-- && ~str.indexOf(sep = String.fromCharCode(i))); if(~i) return (Array(num).join(str + sep) + str).split(sep); } return [str]; }; String.prototype.filledArray = function(num){ if((num = Number(num)) > 1){ var sep, i = 32; while(i-- && ~str.indexOf(sep = String.fromCharCode(i))); if(~i) return (Array(num).join(this + sep) + this).split(sep); } return [this]; };
こうする手もあるか。
String.prototype.filledArray = function(num){ return (num = Number(num)) > 1 ? Array(num + 1).join(this).split(RegExp('(?=(?:[\\s\\S]{'+ this.length +'})+$)')) : [this]; };