com.neolao.data.ArrayUtils

Methodes utiles sur les Array.

Méthodes

Visibilité Return Nom Param 1 Param 2 Param 3 Description
static public Array copy pArray:String 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 Insère un item à une position donnée

Source

/**
 * ATTENTION : UTF-8 (éàöù)
 * 
 * [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)
 * 
 * [17/11/2005] Version 1.6
 * Modification de remove et index: égalité strict
 * 
 * [21/11/2005] Version 1.7
 * Modification de remove: correction pour 2 éléments à supprimer qui se suivent
 * @ignore
 * 
 * Methodes utiles sur les Array
 * @author 			neolao <neo@neolao.com>
 * @version 		1.7 (21/11/2005)
 * @link			http://resources.neolao.com/flash/classes_fp8/data/ArrayUtils
 * @license			http://creativecommons.org/licenses/by-sa/2.5/
 */
class com.neolao.data.ArrayUtils{
	public static var className:String = "ArrayUtils";
	public static var version:String = "1.7";
 
	// ----------------------------- 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);
 
		for(var i:Number=0; i<vResult.length; i++){
			if(vResult[i] === pItem){
				vResult.splice(i, 1);
				i--;
			}
		}
		return vResult;
	}
	/**
	 * Trouve l'index d'un item
	 * @param pArray Le tableau
	 * @param pItem L'élément à trouver
	 * @param pProperty (optional) L'élément à trouver est peut-être une propriété des éléments du tableau
	 * @return L'index de l'élément recherché, sinon -1
	 */
	public static function index(pArray:Array, pItem:Object, pProperty:String):Number{
		var i:Number;
 
		if(pProperty != undefined){
			for(i=0; i<pArray.length; i++){
				if(pArray[i][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 - 1;
 
		for(i=0; i<=l; i++){
			j = Math.round(Math.random()*l);
			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 ====================*/
	/*========================================================================*/
}