Randomiser un liste d'éléments ColdFusion

Programmation Add comments

Voici une fonction toute simple et efficace qui permet de randomiser (je ne sais que ce n'est pas français mais il n'y a pas d'équivalent) l'ordre d'une liste d'éléments. Vous pouvez vous en servir, par exemple, pour faire varier l'ordre d'apparition de bannières sur un site.

function ListRandomiseur(ListARandomiser) {
    var local = StructNew();
    if (ArrayLen(Arguments) gte 2) {
        local.iElements = Arguments[2];
    }
    else {
        local.iElements = ListLen(arguments.ListARandomiser);
    }
    local.lstRandom = "";
    local.ListARandomiser = ListSort(arguments.ListARandomiser, "text");
   
    // convertir en tableau par souci de rapidité
    local.TabARandomiser = ListToArray(local.ListARandomiser);
   
    for (local.i=1; local.i lte local.iElements; local.i = local.i+1) {
        if (ArrayLen(local.TabARandomiser) neq 0) {
            local.iRandom = RandRange(1, ArrayLen(local.TabARandomiser));
            local.lstRandom = ListAppend(local.lstRandom, local.TabARandomiser[local.iRandom]);
            ArrayDeleteAt(local.TabARandomiser, local.iRandom);
        }
        else {
            // plus d'éléments dans la liste
            break;       
        }
    }
    return(local.lstRandom);
}

Utilisation : <CFSET LeResultat = ListRandomiseur(votreListe)>

0 responses to “Randomiser un liste d'éléments ColdFusion”

Leave a Reply





Powered by Mango Blog. Design and Icons by N.Design Studio