前段时间有遇到这样的一个需求,原本给定一个数组,比如是:
array = [‘1′,’2′,’3′,’4′,’5’]
现在需要把数组里所有元素的顺序随机打乱,于是自己写了一个算法,分享出来。
public array function sortQuestions( required array arrayOfQuesions){ LOCAL.arrayOfSortedQuestion = []; numOfQuestions = arrayLen(ARGUMENTS.arrayOfQuesions); for (i=1; i<=numOfQuestions; i=i+1) { if(i == numOfQuestions){ maxNum = 1; } else{ maxNum = numOfQuestions - i + 1; } pos = randRange(1, maxNum); arrayAppend(LOCAL.arrayOfSortedQuestion, ARGUMENTS.arrayOfQuesions[pos]); arrayDeleteAt(ARGUMENTS.arrayOfQuesions, pos); } return LOCAL.arrayOfSortedQuestion; } writeDump(sortQuestions(['1','2','3','4','5']));
执行一次得出的结果是: