Faire tourner un tableau (array)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 971 fois - Téléchargée 16 fois

Contenu du snippet

Il est parfois utile ou nécessaire de faire 'tourner' un Array, c'est à dire de décaler tout le contenu du tableau vers la gauche (premier élément devient dernier, 2eme devient premier,...) ou vers la droite.
Voici une methode très simple pour réaliser cette manipulation.

Source / Exemple :


var my_array:Array=['1','2','3','4','5'] //le tableau que l'on veut faire tourner
// SHIFT ARRAY TO RIGHT (dernier élément devient le premier)
my_array.unshift(my_array.pop());
trace(my_array.join('-'));
// SHIFT ARRAY TO LEFT (premier élément devient le dernier)
my_array.push(my_array.shift());
trace(my_array.join('-'));

et pour ceux qui aiment les classes (comme moi)

class arrayRotation {
	// Private constructor
	private function arrayRotation() {}
	// Static function Rotate
	// theArray :   l'Array qu'on souhaite manipuler
	//              si theArray n'est pas défini, une nouvelle Array vide est renvoyée
	// _direction : chaine de caractère indiquant la direction ('left' ou 'right')
	//              si _direction non défini ou ni 'left' ni 'right' l'Array d'origine est renvoyée
	static function Rotate(theArray:Array,_direction:String):Array
	{
		if (theArray==undefined) return new Array();
		_direction=_direction.toUpperCase();
		// Rotation of array
		switch(_direction)
		{
			case 'RIGHT':
				// SHIFT ARRAY TO RIGHT
				theArray.unshift(theArray.pop());
				break;
			case 'LEFT':
				// SHIFT ARRAY TO LEFT
				theArray.push(theArray.shift());
				break;
		}
		return theArray
	}
}

Conclusion :


Ce n'est pas vraiment une source, c'est plus un petit truc de programmation...

A voir également

Ajouter un commentaire

Commentaires

Improve
Messages postés
176
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
28 novembre 2009
-
Fonctionnelle avec si peu de lignes. C'est ok, je l'ai bien saisi. Que dire des params . . . et le switch(){}. Merveilleux. @+
dj_ouf
Messages postés
221
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
6 septembre 2011
-
nikel pour un tetris! rotation de pièces!
cs_Girou
Messages postés
1204
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2 -
@TOP30 : Excellente idée !!! J'ai développé cette 'astuce' dans une application ou je ne devais que déplacer d'une unité vers la gauche ou la droite mon tableau, mais ta proposition est nettement plus générique. Je prend !!! 10/10 :o)
zoolivier
Messages postés
17
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
13 mars 2009
-
oui, bravo original et apporteur d'idée
top30
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010
-
J'aime bien l'idée :
7/10

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.