Home > ActionScript 2.0 | ActionScript 3.0 > ActionScript :: 配列内を検索するArray.indexof

ActionScript :: 配列内を検索するArray.indexof

今日は非常に基本的なtipsを紹介します。Array.indexOf()メソッドは、配列エレメントを走査し、該当するエレメントがあるか検索し、該当した場合はエレメントのインデックスを返すインスタンスメソッドです。

ただし、このメソッドは配列内に複数ある該当エレメントには対応していません。例えば下記のような配列があり、3が格納されているエレメントのインデックスを抜き出したいとします。しかし、3は複数あるので単純にindexOfしても返値は2です。

var array:Array = [1,2,3,3,4,5,6,7,8,9,10,3,6]

結果を配列内の該当する全てのエレメントにするためには、Array.indexOf()メソッドの第二引数がポイントになります。第二引数には、検索の開始位置を指定することができます。これを利用し、下記のサンプルでは、do-whileステートメントを使用し、該当のエレメントを発見したらそのインデックスを足し込み繰返し処理します。

var array:Array = [1,2,3,3,4,5,6,7,8,9,10,3,6]
repeatIndexof(array, 6);

function repeatIndexof(targetArray:Array, searchElement:*):Array {
	var result:int = -1;
	var results:Array = [];
	var reserve:Boolean;
	do {
		if (reserve) results.push(result);
		result = targetArray.indexOf(searchElement, ++result);
	}while (reserve = result >= 0)
	
	return results
}

Summer Camp 2010 野中文雄のActionScript 3.0による 三次元表現

無料  ActionScript 3.0による 三次元表現 in アップルストア 銀座

フィジカルコンピューティング ラボラトリー

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://xingxx.com/mt/mt-tb.cgi/60
Listed below are links to weblogs that reference
ActionScript :: 配列内を検索するArray.indexof from xingxx

Home > ActionScript 2.0 | ActionScript 3.0 > ActionScript :: 配列内を検索するArray.indexof

Search
Feeds
Tag Cloud

Return to page top