Table des matières

com.neolao.data.ArrayIterator

Itération sur un tableau.

Exemple

o = ["a", "b"];
o = new ArrayIterator(o);
trace(o.next()); // a
trace(o.next()); // b
o.reset();
trace(o.next()); // a
 
p = new ArrayIterator();
p.push("a");
p.push("b");
p.push("c");
while(p.hasNext()){
	trace(p.next());
}
// a
// b
// c

Constructeur

Initialisation

Propriétés

Visibilité Type Nom Status Description
private Number _index L'index courant

Méthodes

Visibilité Return Nom Description
public Void reset Remet l'index à zero
public Boolean hasNext Indique s'il y a une valeur suivante
public Object next Récupère la valeur suivante

Change Log

[15/06/2005] Version 1.0

Création

Source

/**
 * Itération sur un tableau
 * @author 		neolao <neo@neolao.com>
 * @version 		1.0 (15/06/2005)
 */
dynamic class com.neolao.data.ArrayIterator extends Array{
	public var className:String = "ArrayIterator";
	public var version:String = "1.0";
 
	// ----------------------------- VARIABLES ---------------------------------
	/**
	 * L'index courant
	 */
	private var _index:Number;
 
	/*============================= CONSTRUCTEUR =============================*/
	/*========================================================================*/
	/**
	 * Initialisation
	 * @param pArray Le tableau
	 */
	public function ArrayIterator(pArray:Array){
		if(pArray){
			for(var i=0; i<pArray.length; i++){
				this[i] = pArray[i];
			}
		}
		_index = 0;
	}
	/*======================= FIN = CONSTRUCTEUR = FIN =======================*/
	/*========================================================================*/
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Remet l'index à zero
	 */
	public function reset(Void):Void{
		_index = 0;
	}
	/**
	 * Indique s'il y a une valeur suivante
	 * @return true s'il y a une valeur suivante, sinon false
	 */
	public function hasNext(Void):Boolean{
		return (_index < this.length);
	}
	/**
	 * Récupère la valeur suivante
	 * @return La valeur suivante si elle existe, sinon undefined
	 */
	public function next(Void):Object{
		return this[_index++];
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}