とあるDTPオペレーターのInDesignスクリプト備忘録

デザイナー上がりですがいまはDTP命。InDesign用スクリプトの解説などを綴っています。読者登録して戴けると励みになります。

【入門者向け番外編】for、配列変数、ifを使ったちょっとしたお遊び

前回書いた「if文」と、その前に書いた「配列変数」、そのさらに前に書いた「for文」を使ってちょっとしたお遊びを。

「いろんなものが入った配列変数の中身から、3文字のものだけをもうひとつの配列変数にコピー」してみます。
ちょうど、ふるいに掛けるような感じですね。
前述の2つの文と配列変数を使って下のようなスクリプトを書いてみました。

var fromArray = ["あんこ","珈琲","焼肉","カレー","DTP","デザイン"];
var toArray =[] //空の配列を用意

for (var i=0; i<fromArray.length; i++) {
        if (fromArray[i].length == 3) { //3文字のものだけをifで選別
                toArray.push (fromArray[i]); 
          //選ばれし言葉を空の配列に押し込む
            }
    }

var result = toArray.toString(); //選ばれし言葉が押し込まれた配列を文字列に直し…
alert (result); //…その文字列をアラートする


最終行近くに出てくるtoString()は配列の中身を文字列に直す命令文です(元の配列はそのままに、頭につけた変数に結果が返ります)。
fromArray配列の中には文字数が異なるいくつかの言葉が入っていますが、スクリプトがうまく動けば空っぽだったtoArray配列が3文字の言葉だけで満たされているはず…! アラートが出てくるとき、ちょっとワクワクしますね。

ちなみにこのスクリプト、ターゲットをESTKにしておけばInDesignを起動してなくても動くと思います。

if、配列変数、forの組み合わせでこんなことが出来るなんて面白いですよね。お遊びと言いつつ、実用性もあります。
PCの操作でいうところの、フォルダからフォルダへコピー(移動ではない)するイメージに近いのでしょうか。
勉強目的で読んでくださってる方は、配列の中身やifの条件文を変えたりして試してみても面白いかもです。