Return to Snippet

Revision: 23161
at January 31, 2010 18:22 by chrisaiv


Initial Code
package com.blogspot.flanture.arrays
{

// search Array as3 functions
// author: http://flanture.blogspot.com 
// contact: [email protected]
// January 2010

	import flash.display.Sprite;

	public class SearchArray extends Sprite {
		
		public function SearchArray() {
			
			// example usage
			
			var a:Array = [1,2,3,5,3];
			var b:Array = [2,4,6,8];
			
			search(6, b);
			trace("a combined with b: "+combine(a,b));
			trace("6 exists in b? "+searchB(6,b));
			trace("number of 3 in a? "+searchCount(3,a));
			trace("intersection of a and b: "+iSection(a,b));
			trace("shuffled b: "+shuffle(b));			
		}

	// function search finds element in array and displays result		
		
	public static function search(word:Object, arr:Array):void {
			var exists:Boolean = false;
			for(var i:uint=0; i < arr.length; i++){
				if(arr[i]==word){
					trace("Element exist on position "+i);
					exists = true;
				}
			}
			if(!(exists)){
				trace("Element doesn't exist in array.");
			}
		}
		
	// function searchB finds element in array and returns Boolean value
		
	public static function searchB(word:Object, arr:Array):Boolean {
			var exists:Boolean = false;
			for(var i:uint=0; i < arr.length; i++) {
				if(arr[i]==word){
					exists = true;
				}
			}
			return exists;
		}
		
	// function searchCount returns number of apperances of element in array
		
	public static function searchCount(word:Object, arr:Array):uint {
			var counter:uint = 0;
			for(var i:uint=0; i < arr.length; i++) {
				if(arr[i]==word){
					counter+=1;
				}
			}
			return counter;
		}
		
	// function iSection returns intersection array of two arrays
		
	public static function iSection(arr1:Array, arr2:Array):Array {
			var arr3:Array = new Array();
			var count:uint = 0;
			for(var i:uint=0; i < arr1.length; i++){
				for(var j:uint=0; j < arr2.length; j++){
					if(arr1[i]==arr2[j]){
						arr3[count] = arr1[i];
						count+=1;
					}
				}
			}
			return arr3;
		}
		
	// function shuffle simply shuffles given array elements
		
	public static function shuffle(b:Array):Array {
			var temp:Array = new Array();
			var templen:uint;
			var take:uint;
			while (b.length > 0) {
				take = Math.floor(Math.random()*b.length);
				templen = temp.push(b[take]);
				b.splice(take,1);
			}
			return temp;
		}
		
	// function combine returns union of two arrays
	
	public static function combine(ar1:Array, ar2:Array):Array {
		var rAr:Array = new Array();
		var i:uint = 0;
		var j:uint = 0;
		while((i < ar1.length) || (j < ar2.length)) {
			if(i < ar1.length){
				rAr.push(ar1[i]);
				i+=1;
			}
			if(j < ar2.length){
				rAr.push(ar2[j]);
				j+=1;
			}
		}
		return rAr;
		}		
	}
}

Initial URL
http://flanture.blogspot.com

Initial Description
I found this awesome class by [email protected] and can't help but share it.

Initial Title
AS3: Search within an Array

Initial Tags
array

Initial Language
ActionScript 3