仕事柄、「Google Apps Script」が手放せません。
「V8 Runtime」にアップデートされてからいろいろ覚え、時間のある時にコツコツ書き換えています。
今回、スペースによるパディングをした方が良いものがあって、どうやったらよいかと考えていました。
例えば、
「1」
「1,000」
を、
「 1」
「1,000」
とするイメージです。
他の言語だと同じ文字列を繰り返す関数があります。
じゃあ、「Google Apps Script」は?
今回は同じ文字列を繰り返す方法についてまとめてみました。
普通の発想ならどう書く?
repeat()を使います。
これはES6(ECMAScript 2015)からの書き方です。
function test1() {
console.log('Happy'.repeat(3));
// ⇒ HappyHappyHappy
}
Google Apps Scriptでは使えない?
公式ガイドでは、ES6にまだ対応してない(ES6 modules are not yet supported.)とあります。
試してみたところ、「Google Apps Script」でも作動はしました。
ただし、「(メニューバーの)表示 ⇒ ログ」には出力されたけれど、「Apps Script ダッシュボード」にはされなかったです。
心配な場合は、Google Apps ScriptがES6に対応するのを待ってからの方が良さそうです。
代わりの方法はある?
方法はいろいろありまして、私が「その発想はなかった!」と思わず声に出した書き方がこちらです。
function test() {
console.log(Array(3+1).join('Happy'));
// ⇒ HappyHappyHappy
}
join()は、配列を()内の文字をはさんでつなぐ関数です。
並みの発想なら、配列の方に繰り返したい文字をいれ、()内を空白にするところ。
それを逆にして、配列を空白に、()内に繰り返したい文字を入れるのが斬新なアイディアでした。
ちなみに、配列の要素数は繰り返したい数に「+1」するのがポイントです。
まとめ
Google Apps ScriptはまだES6に未対応ながら、repeat()は作動するようです。
それにしても、join()の使い方には目から鱗でした。
私もこんな柔軟な発想を持てるようになりたいです。