FREE MOTION

FREE MOTION
職人への道

Flash職人への道 上級編

今回は以前に説明した配列の応用について説明するよ!配列ならではの機能について勉強してみよう☆
■配列の応用
配列は、複数の値をただ管理するだけでなく、新たに配列を付け足したり、配列同士を結合したり、配列内の値のソート(並び替え)など、様々な機能を利用することができます。       

配列に使用できるメソッド

配列には下記のメソッドが使用できます。
配列のメソッド一覧
配列名.concat() 配列同士をつなげます。
配列名.join() 配列に特定の文字を挟んで返します。
配列名.length 配列の要素数を返します。
配列名.pop() 配列の最後の要素を削除して返します。
配列名.push() 配列の最後に要素を追加して要素数を返す。
配列名.reverse() 配列の要素の順番を逆にする。
配列名.shift() 配列の一番最初の要素を削除してその結果を返します。
配列名.slice() 配列の特定の範囲の要素を配列として返します。
配列名.sort() 配列の要素の順番をソートします。
配列名.splice() 配列の特定の範囲の要素を削除し、代わりの要素をいれます。
配列名.toString() 配列の要素をストリング(文字列)にして返します。
配列名.unshift() 配列の要素の先頭に新しい要素を追加して要素数を返します。

メソッドを使ってみよう

それでは実際に"配列"のメソッドを使ってみましょう。
例:"配列"を結合する
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu1 = ["あ","い","う",];
hairetsu2 = ["A","B","C",];
hairetsu3 = [1,2,3,];

hairetsu4 = hairetsu1.concat(hairetsu2, hairetsu3);
この"配列"の記述例では、配列名"hairetsu1"、に配列名"hairetsu2"配列名"hairetsu3"の要素を結合し、その結果を配列名"hairetsu4"に代入しています。

記述例では
hairetsu4[0]の値は "あ"
hairetsu4[1]の値は "い"
hairetsu4[2]の値は "う"
hairetsu4[3]の値は "A"
hairetsu4[4]の値は "B"
hairetsu4[5]の値は "C"
hairetsu4[6]の値は 1
hairetsu4[7]の値は 2
hairetsu4[8]の値は 3
となります。
例:"配列"の要素間に特定の文字を挟む
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お",];

kotae = hairetsu.join(":");
この"配列"の記述例では、配列名"hairetsu"の要素間に、":"(コロン)を挿入し、その結果を変数名"kotae"に代入しています。

記述例では
kotaeの値は "あ:い:う:え:お"
となります。
例:"配列"の要素数を返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あああ","いいいい","ううう","ええええ","おお",];

youso = hairetsu.length;
この"配列"の記述例では、配列名"hairetsu"の要素数を算出し、その結果を変数名"youso"に代入しています。

記述例では
yousoの値は 5
となります。
例:"配列"の最後の要素を削除して返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お",];

kotae = hairetsu.pop();
この"配列"の記述例では、配列名"hairetsu"の最後の要素"お" を削除し、その要素を変数名"kotae"に代入しています。

記述例では
kotaeの値は "お"
hairetsu[0]の値は "あ"
hairetsu[1]の値は "い"
hairetsu[2]の値は "う"
hairetsu[3]の値は "え"
hairetsu[4]の値は 削除されているのでありません
となります。
hairetsu[4]pop()により削除されていることに注目してください。
例:"配列"の最後に要素を追加して要素数を返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う"];

youso = hairetsu.push("A", "B");
この"配列"の記述例では、配列名"hairetsu"の最後に要素"A" "B" を追加し、追加後の要素数を変数名"youso"に代入しています。

記述例では
yousoの値は 5
hairetsu[0]の値は "あ"
hairetsu[1]の値は "い"
hairetsu[2]の値は "う"
hairetsu[3]の値は "A"
hairetsu[4]の値は "B"
となります。
例:"配列"の要素を逆順に並べ替える
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お"];

hairetsu.reverse();
この"配列"の記述例では、配列名"hairetsu"の要素の順番を逆順にします。

記述例では
hairetsu[0]の値は "お"
hairetsu[1]の値は "え"
hairetsu[2]の値は "う"
hairetsu[3]の値は "い"
hairetsu[4]の値は "あ"
となります。逆順のソート(並び替え)ではなく、要素順番の反転であることに注意しましょう。
例:"配列"の一番最初の要素を削除し、その結果を返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お"];

kotae = hairetsu.shift();
この"配列"の記述例では、配列名"hairetsu"の一番最初の要素を削除し、その内容を変数名"kotae"に代入します。

記述例では
kotaeの値は "あ"
hairetsu[0]の値は "い"
hairetsu[1]の値は "う"
hairetsu[2]の値は "え"
hairetsu[3]の値は "お"
となります。
例:"配列"からの特定の範囲の要素を抽出し、その結果を返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu1 = ["あ","い","う","え","お"];

hairetsu2 = hairetsu1.slice(1, 4);
この"配列"の記述例では、配列名"hairetsu1"の配列番号(インデックス)の1番目から、配列の頭から数えて4個目の要素を抽出し、その内容を配列名"hairetsu2"に代入します。

記述例では
hairetsu2[0]の値は "い"
hairetsu2[1]の値は "う"
hairetsu2[2]の値は "え"
となります。
例:"配列"の要素の値の順番にソート(並べ替え)する
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["お","い","あ","え","う"];

hairetsu.sort();
この"配列"の記述例では、配列名"hairetsu"の要素を値順にソート(並び替え)します。

記述例では
hairetsu[0]の値は "あ"
hairetsu[1]の値は "い"
hairetsu[2]の値は "う"
hairetsu[3]の値は "え"
hairetsu[4]の値は "お"
というように、50音順に並び替えます。
アルファベットの場合はアルファベット順に、数値の場合は若い数値順に並び替えします。
例:"配列"の特定の要素から数個分を削除して別の要素と入れ替え、その結果を返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お"];

hairetsu.splice(1, 2,"A","B");
この"配列"の記述例では、配列名"hairetsu"のインデックス1番目から2個目の要素を削除し、変わりに"A"と"B"という要素をその間に入れます。

記述例では
hairetsu[0]の値は "あ"
hairetsu[1]の値は "A"
hairetsu[2]の値は "B"
hairetsu[3]の値は "え"
hairetsu[4]の値は "お"
となります。
例:"配列"の要素を文字列として返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お"];

kotae = hairetsu.toString();
この"配列"の記述例では、配列名"hairetsu"の要素の内容を文字列(ストリング)として変数名"kotabe"に代入します。

記述例では
kotaeの値は "あ,い,う,え,お"
となります。
例:"配列"の先頭に要素を追加して要素数を返す
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お"];

kotae = hairetsu.unshift("ア","イ");
この"配列"の記述例では、配列名"hairetsu"の先頭に要素"ア","イ"を追加し、そのあとの要素数を変数名"kotabe"に代入します。

記述例では
kotaeの値は 7
hairetsu[0]の値は "ア"
hairetsu[1]の値は "イ"
hairetsu[2]の値は "あ"
hairetsu[3]の値は "い"
hairetsu[4]の値は "う"
hairetsu[5]の値は "え"
hairetsu[6]の値は "お"
となります。
例:"配列"のインデックスに変数を使う
フレームまたはシンボル等に以下のスクリプトを記述します。
<記述例>
hairetsu = ["あ","い","う","え","お"];

i = 2;

trace(hairetsu[i]);
この"配列"の記述例では、配列名"hairetsu"の特定の要素の内容をtrace()関数で表示させています。通常はhairetsu[2]のようにインデックスの部分は数値を入力して、その値を取り出しますが、例のように変数を入れ込むことも可能です。

記述例では
hairetsu[i]iが、既に代入されている2となり、
hairetsu[2]の値 "う"が表示されます。
となります。

まとめ

配列の応用はいかがだったかな?配列のソートなど様々な機能を紹介してきたが、これらは例えば複数の得点情報を高スコア順に並び替えたりするなどデータ的な情報管理を行う際に便利だぞ。これらと同じことを個々の変数だけで表現しようとすると、巧みにif()文などを駆使する必要がありとても大変なものになるが、配列とそのメソッドを使用することで簡単に行うことができるんだ。変数での情報管理が難しい時や、データ的な情報管理が必要とされるときはこの配列を使ってみるといいだろう。Flash制作のステップアップに役立ててみてくれ。