« 3.1 配列の操作(1) | メイン | ピクセルディゾルブsample »

3.1 配列の操作(2)Arrayクラスを使う

■Arrayクラスを使う
本来、配列はArrayクラスのインスタンスとして作ります。次のスクリプトはこれまでの例で配列演算子[]で作ってきたmyValue、myColor、weekjの配列をnew演算子を使ってArrayクラスのインスタンスとして作っています。

例:
var myValue:Array = new Array(2, 5, 3, 10, 99);
var myColor:Array = new Array("red", "green", "yellow");
var weekj:Array = new Array("日", "月", "火", "水","木", "金", "土");
配列の値の個数を調べたり、値の追加や削除、並び替えるといった操作は、Arrayクラスのプロパティとメソッドを利用します。配列の操作はプログラミングにおいて大変重要な役割があります。そこで次にArrayクラスのプロパティとメソッドの使い方を簡単に説明します。なお、ActionScript2.0とActionScript3.0では利用できるメソッドが少し変わったので注意が必要です。

■配列の値の個数を調べる length
配列の値の個数はlengthプロパティで調べます。配列のインデックス(値の位置)は0からカウントしますが、個数は1からカウントします。

例:
var myValue:Array = new Array(2, 5, 3, 10, 99);
trace(myValue.length);
//出力:5

次のgetColor関数は配列の長さ以上の位置の値を取り出そうとした場合には先頭の値を返します。

[:sample:] getColor.fla
例:
function getColor(list:Array, index:uint):String {
	if (index>=list.length) {
		index=0;
	}
	return list[index];
}

getColor()をテストすると次のようになります。myColorに存在しない5番目の色(インデックス4)を指定した場合、getColor()は1番目の色(インデックス0)のredを返します。

例:
var a:String, b:String, c:String;
var myColor:Array = ["red", "green", "yellow"];
a = getColor(myColor, 2);// yellow
b = getColor(myColor, 4);// red
c = myColor[4];// null

■先頭/末尾に値を追加する、抜き取る push()、pop()、unshift()、shift()
push()は配列の最後に値を追加するメソッドで、逆にpop()は配列の最後の値を取り出すメソッドです。pop()すると配列の最後の値が削除され、抜き取った値が返ってきます。
次の例は最初に空のcolorList配列を作り、色を1つずつ追加しています。結果として["red","yellow","black"]の配列になります。

[:sample:] push.fla
例:
var colorList:Array = new Array();
colorList.push("red");
colorList.push("yellow");
colorList.push("black");
trace(colorList);
//出力:red,yellow,black

次の例はcolorListから最後の色を抜き取っています。lastColorには"black"が入り、元のcolorListは["red","yellow"]の2色になります。

[:sample:] pop.fla
例:
var colorList:Array = new Array("red", "yellow", "black");
var lastColor:String = colorList.pop();
trace(lastColor);
//出力:black
trace(colorList);
//出力:red,yellow

unshift()は配列の先頭に値を追加挿入するメソッドで、逆にshift()は配列の先頭の値を抜き取るメソッドです。
[:sample:] unshift.fla
例:
var colorList:Array = new Array("red","yellow");
colorList.unshift("black");
colorList.unshift("white");
trace(colorList);
//出力:white,black,red,yellow

次はshift()の例です。配列の先頭の値を抜き出しています。

例:
var colorList:Array = new Array("red", "yellow", "black");
var firstColor:String = colorList.shift();
trace(firstColor);
//出力:red
trace(colorList);
//出力:yellow,black

About

2007年6月 9日 07:48に投稿されたエントリーのページです。

ひとつ前の投稿は「3.1 配列の操作(1)」です。

次の投稿は「ピクセルディゾルブsample」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。