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];
};