嗨我有一个字符串数组,我需要将它们从最后一个输出到第一个。
我没有看到arrayReverse()
函数,但我只是在学习ColdFusion
答案 0 :(得分:13)
你可以反向循环遍历数组
<cfloop index="i" from="#arrayLen(myArray)#" to="1" step="-1">
<cfoutput>#myArray[i]#</cfoutput>
</cfloop>
我认为您需要使用Java方法来真正反转数组。
<cfscript>
// and for those who use cfscript:
for ( var i = arrayLen( myArray ); i >= 1; i-- ) {
writeOutput( myArray[i] );
}
</cfscript>
答案 1 :(得分:1)
哦,但有一个ArraySort方法!
ArraySort( array, sort_type [, sort_order] );
返回布尔值。
array
通过引用更新。
sort_type
可以是numeric
,text
或textnocase
sort_order
可以是asc
或desc
<cfscript>
test = [ "c", "d", "a", "b" ];
arraySort( test, 'textnocase' );
test is now:
[ "a", "b", "c", "d" ]
</cfscript>
请查看此处的文档:
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-a-b/arraysort.html
答案 2 :(得分:1)
我写了这个函数来反转一个数组。它修改数组并返回它。
function init(required array arr) {
var arrLen = arrayLen(arr);
for (var i = 1; i <= (arrLen / 2); i++) {
var swap = arr[arrLen + 1 - i];
arr[arrLen + 1 - i] = arr[i];
arr[i] = swap;
}
return arr;
}
我已对它进行了测试,它适用于字符串数组以及对象等。
writeOutput(arrayReverse(['a','b','c']) ); // => ['c', 'b', 'a']
var a = ['apple', 'ball', 'cat', 'dog'];
arrayReverse(a);
writeOutput(a); // => ['dog', 'cat', 'ball', 'apple']
我把它放在它自己的组件中,因此在不同的项目中使用它更容易。
答案 3 :(得分:1)
CF中的FYI数组只是ArrayList,所以......
arr = [1,2,3];
createObject("java", "java.util.Collections").reverse(arr);
writeDump(arr); // arr becomes [3,2,1]
我不打算写arrayReverse()
,因为数组是通过CF中的值传递的(直到CF2016&#39; s this.passArraybyReference
),所以它效率极低。
答案 4 :(得分:0)
<cfscript>
test = [ "a", "b", "c", "d" ];
writeDump(listToArray(reverse(arrayToList(test))));
</cfscript>
会做的伎俩。