Create a Random List in ColdFusion
March 26, 2008
This is a way to randomise (or randomize if you're American!) a list in ColdFusion. I haven't benchmarked it but it works.
function ListRandomise(lstToRandomise) {
var local = StructNew();
// by default the function will randomise all elements in the list unless a second parameter is passed...
if (ArrayLen(Arguments) gte 2) {
local.iElements = Arguments[2];
}
else {
local.iElements = ListLen(arguments.lstToRandomise);
}
local.lstRandom = "";
local.lstToRandomise = ListSort(arguments.lstToRandomise, "text");
// convert to an array for speed
local.aryToRandomise = ListToArray(local.lstToRandomise);
for (local.i=1; local.i lte local.iElements; local.i = local.i+1) {
if (ArrayLen(local.aryToRandomise) neq 0) {
local.iRandom = RandRange(1, ArrayLen(local.aryToRandomise));
local.lstRandom = ListAppend(local.lstRandom, local.aryToRandomise[local.iRandom]);
ArrayDeleteAt(local.aryToRandomise, local.iRandom);
}
else {
// run out of list elements...
break;
}
}
return local.lstRandom;
}
- Posted in:
- ColdFusion
No comments
Leave a comment
If you found this post useful, interesting or just plain wrong, let me know - I like feedback :)
