From d5717b23e3877a046593062b334eb8e5310f825c Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sun, 16 Feb 2014 23:48:20 +0100 Subject: [PATCH] Added a shuffle function for arrays --- wcfsetup/install/files/js/WCF.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/wcfsetup/install/files/js/WCF.js b/wcfsetup/install/files/js/WCF.js index 7eae22e64a..3cc1c9672c 100755 --- a/wcfsetup/install/files/js/WCF.js +++ b/wcfsetup/install/files/js/WCF.js @@ -121,6 +121,29 @@ String.prototype.hashCode = function() { return $hash; }; +/** + * Adds a Fisher-Yates shuffle algorithm for arrays. + * + * @see http://stackoverflow.com/a/2450976 + */ +function shuffle(array) { + var currentIndex = array.length, temporaryValue, randomIndex; + + // While there remain elements to shuffle... + while (0 !== currentIndex) { + // Pick a remaining element... + randomIndex = Math.floor(Math.random() * currentIndex); + currentIndex -= 1; + + // And swap it with the current element. + temporaryValue = array[currentIndex]; + array[currentIndex] = array[randomIndex]; + array[randomIndex] = temporaryValue; + } + + return this; +}; + /** * User-Agent based browser detection and touch detection. */ -- 2.20.1