• ホーム
  • メモ
  • as3
  • AS3 配列の中身がobject型の時 objectの値をもとにsortOnする

[PR] WEB制作会社PSYCOMMU

as3

AS3 配列の中身がobject型の時 objectの値をもとにsortOnする

配列の中身をある値を元に並べ替えたい時などに使用

使いどころは例えば3DなどでZソートの時などその他もろもろ使えます。

配列.sortOn("値", Array.CASEINSENSITIVE | Array.NUMERIC);
一行でいけます。便利。

  • Array.CASEINSENSITIVE(昇順)
  • Array.DESCENDING(降順)

trace

きちんと並べ替えられています。good!

【asソース】

package {
	
	import flash.display.Sprite;
	
	public class Sample20090617 extends Sprite {		
		
		private var _len:uint = 5;
		private var _idArr:Array = [5, 3, 1, 2, 4];
		private var _nameArr:Array = ["satoken", "web", "hoge", "as3", "flash"];
		private var _objArr:Array = new Array();
		
		public function Sample20090617():void {
			init();
		}
		
		private function init():void {
			
			for (var i:uint = 0; i < _len; i++) {
				var _obj:Object = new Object();
				_objArr.push(_obj);
				_obj.name = _nameArr[i];
				_obj.id = _idArr[i];
			}
			
			/*
			 * trace用
			 */
			
			trace("sortOn前の配列の並び");
			trace("■■■■■■■■■■■■■■■■■");
			for (var i:uint = 0; i < _len; i++) {
				var _obj:Object = _objArr[i];
				trace(_obj.id,_obj.name);
			}
			
			trace("-------------------------------------");
			
			/*
			 * CASEINSENSITIVE
			 * DESCENDING
			 * で昇順・降順変更
			 */
			
			_objArr.sortOn("id", Array.CASEINSENSITIVE | Array.NUMERIC);
			
			/*
			 * trace用
			 */
			trace("sortOn後の配列の並び");
			trace("■■■■■■■■■■■■■■■■■");
			for (var i:uint = 0; i < _len; i++) {
				var _obj:Object = _objArr[i];
				trace(_obj.id,_obj.name);
			}
		}
	}
}

AS3 配列の中身がobject型の時 objectの値をもとにsortOnするに対してコメントをする

Copyright 2009 PANDAMA. All rights reserved.
PANDAMA.com 掲載の記事・写真・図表など無断転載を禁止します。著作権はPANDAMA.comに属します。