com.neolao.data.ArrayUtils

Méthodes utiles sur les Array.

Méthodes

Visibilité Return Nom Param 1 Param 2 Param 3 Description
static public Array copy pArray:Array Duplique le tableau (Pas la même référence)
static public Array remove pArray:Array pItem:Object Supprime un élément d'un tableau
static public Number index pArray:Array pItem:Object pProperty:String Trouve l'index d'un item
static public Array shuffle pArray:Array Mélange les éléments d'un tableau
static public Array insert pArray:Array pItem:Object pIndex:Number Insere un item a une position donnee

Change log

[12/08/2004] Version 1.3

Methodes utiles sur les Array

[23/09/2004] Version 1.4

  • Modification de la methode copy : La copie existait deja dans les fonctions de base
  • Creation de la methode insert

[25/10/2004] Version 1.5

Modification de la méthode shuffle (for normal au lieu de for..in)

Source

/**
 * Methodes utiles sur les Array
 * @author 		neolao <neo@neolao.com>
 * @version 		1.5 (25/10/2004)
 * @link		http://resources.neolao.com/flash/classes/data/ArrayUtils
 * @license		http://creativecommons.org/licenses/by-sa/2.0/
 */
class com.neolao.data.ArrayUtils{
	public static var className:String = "ArrayUtils";
	public static var version:String = "1.5";
 
	// ----------------------------- CONSTANTES --------------------------------
 
	// ----------------------------- VARIABLES ---------------------------------
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Duplique le tableau (Pas la même référence)
	 * @param pArray Le tableau à dupliquer
	 * @return La nouvelle référence de ce tableau
	 */
	public static function copy(pArray:Array):Array{
		return pArray.slice();
	}
	/**
	 * Supprime un élément d'un tableau
	 * @param pArray Le tableau
	 * @param pItem L'élément à supprimer
	 * @return Une nouvelle référence du tableau avec l'élément en moins
	 */
	public static function remove(pArray:Array, pItem:Object):Array{
		var vResult:Array = copy(pArray);
		var i:String;
 
		for(i in vResult){
			if(vResult[i] == pItem){
				vResult.splice(Number(i), 1);
			}
		}
		return vResult;
	}
	/**
	 * Trouve l'index d'un item
	 * @param pArray Le tableau
	 * @param pItem L'élément à trouver
	 * @param pProperty L'élément à trouver est peut-être une propriété des éléments du tableau [optionnel]
	 * @return L'index de l'élément recherché, sinon -1
	 */
	public static function index(pArray:Array, pItem:Object, pProperty:String):Number{
		var i:Number;
		var tmp:Object;
 
		if(pProperty != undefined){
			for(i=0; i<pArray.length; i++){
				tmp = pArray[i];
				if(eval("tmp." + pProperty) == pItem){
					return i;
				}
			}
		}
		for(i=0; i<pArray.length; i++){
			if(pArray[i] == pItem){
				return i;
			}
		}
		return -1;
	}
	/**
	 * Mélange les éléments d'un tableau
	 * @param pArray Le tableau
	 * @return Une nouvelle référence d'un tableau avec les éléments d'origine mélangés
	 */
	public static function shuffle(pArray:Array):Array{
		var vResult:Array = copy(pArray);
		var tmp:Object;
		var i:Number;
		var j:Number;
		var l:Number = pArray.length;
 
		for(i=0; i<l; i++){
			j = Math.round(Math.random()*(vResult.length - 1));
			tmp = vResult[j];
			vResult[j] = vResult[i];
			vResult[i] = tmp;
		}
		return vResult;
	}
	/**
	 * Insere un item a une position donnee
	 * @param pArray Le tableau a traiter
	 * @param pItem L'item a ajouter
	 * @param pIndex La position où inserer l'item
	 * @return Le nouveau tableau avec l'item ajoute
	 */
	public static function insert(pArray:Array, pItem:Object, pIndex:Number):Array{
		var vBefore:Array;
		var vAfter:Array;
 
		vBefore = pArray.slice(0, pIndex);
		vBefore.push(pItem);
		vAfter = pArray.slice(pIndex);
 
		return vBefore.concat(vAfter);
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}