9
votes

Comment puis-je inverser un tableau

Bonjour, j'ai une gamme de chaînes et j'ai besoin de les sortir de la dernière à la première.

Je ne vois pas de arrayReververse () fonction, mais je n'apprends que coldfusion


1 commentaires

Cflib à la rescousse! Quelqu'un a déjà écrit une fonction ArrayReververse : CFLIB.ORG/UDF/ARRAYRRAYReverse


5 Réponses :


14
votes

Vous pouvez simplement boucler sur le tableau dans l'inverse

<cfscript>
// and for those who use cfscript:
for ( var i = arrayLen( myArray ); i >= 1; i-- ) {
    writeOutput( myArray[i] );
}
</cfscript>


2 commentaires

Si tout ce que vous faites, c'est émettre les valeurs, en boucle vers l'arrière de la matrice comme ceci est ce dont vous avez besoin


La méthode Java est également rapide et facile si vous avez accès à Java sur votre hôte: A = [1, 2, 3, 4, 5]; CreateObject ("Java", "Java.Util.collections"). Reverse (A); Writesump (a);




0
votes
<cfscript>
    test = [ "a", "b", "c", "d" ];
    writeDump(listToArray(reverse(arrayToList(test))));
</cfscript>
Will do the trick.

4 commentaires

Bien pour les petits tableaux - mais cher pour les gros


Belle idée si les données de la matrice sont simples. Ne fonctionnerait pas si c'est un éventail d'objets ou de structs ou de tableaux.


Essayez votre exemple avec des mots au lieu de caractères simples. Cela revient vraiment.


Si Test = ['Hello', 'CAT'] alors vous obtiendrez ['TAC', 'OLLEH'] .



1
votes

J'ai écrit cette fonction pour inverser un tableau. Il modifie la matrice et le renvoie.

writeOutput(arrayReverse(['a','b','c']) ); // => ['c', 'b', 'a']

var a = ['apple', 'ball', 'cat', 'dog'];
arrayReverse(a);
writeOutput(a); // => ['dog', 'cat', 'ball', 'apple']


0 commentaires