タグ「array」が付けられているもの

AS3 配列をシャッフルする

こちらもよく使用する関数なのでコピペ用にメモ

チョー便利

【asソース】


package {
	
	import flash.display.Sprite;
	
	public class Pandama20091008 extends Sprite {		
				
		public function Pandama20091008():void {
			init();
		}
		
		private function init():void {
			
			/* もとの配列 */
			
			var _arr:Array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
			trace(_arr);
			
			/* シャッフル後の配列 */
			
			var _reArr = shuffleArray(_arr);
			trace(_reArr);

		}
		private function shuffleArray(arr:Array):Array {

			var _len:uint = arr.length;
			var _reArr:Array = arr;
			
			while (_len) {
				
				var _m:uint = Math.floor(Math.random() * _len);
				var _n = _reArr[--_len];
				_reArr[_len] = _reArr[_m];
				_reArr[_m] = _n ;
                
			}
			
			return _reArr;
		}	
	}
}

AS3 配列の重複を取り除く

そういえばよく使用する関数なのでコピペ用にメモ

2種類あるがどちらがの方が処理軽いのかわかりませぬ。ガッデム。
今度時間が出来たら調べよう・・・

【asソース】


package {
	
	import flash.display.Sprite;
	
	public class Sample20091006 extends Sprite {		
				
		public function Sample20091006():void {
			init();
		}
		
		private function init():void {
			
			/* もとの配列 */
			
			var arr:Array = [0, 0, 1, 10, 1, 2, 2, "hoge", "hoge", "hoge2", "hoge2"];
			
			var reArr = getUniqueArray(arr);
			trace(reArr);
			
			var reArr2 = getUniqueArray2(arr);
			trace(reArr2);
		}
		
		/* 文字列を利用バージョン */
		private function getUniqueArray(_array:Array) {
			
			/* リターン用の新しい配列とチェック用の配列作成 */
			var re_array:Array = new Array();
			var checkString:String = "";
			
			for (var i = 0; i < _array.length; i++) {
				
				/* 現在の文字 */
				var myValue:String = _array[i];
				
				/* falseならpush */
				if (checkString.search(myValue)==-1) {
					re_array.push(myValue);
					checkString += myValue;
				}
			}
			return re_array;
		}
		
		/* 配列を利用バージョン */
		private function getUniqueArray2(_array:Array):Array {

			/*リターン用の新しい配列とチェック用の配列作成*/
			var re_array:Array = new Array();
			var checkArr:Array = new Array();

			for (var i:Number = 0; i<_array.length; ++i) {
				
				/* 現在の文字 */
				var myValue:String = _array[i];
				
				/* falseならpush */
				if (!checkArr[myValue]) {
					/* すでにあるのでフラグをtrueに */
					checkArr[myValue] = true;
					re_array.push(myValue);
				}

			}

			return re_array;

		}
	}
}

1