-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathshuffle-seed.min.js
1 lines (1 loc) · 937 Bytes
/
shuffle-seed.min.js
1
(function(){var e={};Math.seedrandom&&(var seedrandom=Math.seedrandom);var r=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t=function(e){return/(number|string)/i.test(Object.prototype.toString.call(e).match(/^\[object (.*)\]$/)[1])?e:isNaN(e)?Number(String(this.strSeed=e).split("").map(function(e){return e.charCodeAt(0)}).join("")):e},n=function(e,r,t){return Math.floor(e()*(t-r+1))+r};e.shuffle=function(e,o){if(!r(e))return null;o=t(o)||"none";for(var u=e.length,a=seedrandom(o),l=[],s=[],i=0;u>i;i++)s.push(i);for(var i=0;u>i;i++){var f=n(a,0,s.length-1),h=s[f];s.splice(f,1),l.push(e[h])}return l},e.unshuffle=function(e,o){if(!r(e))return null;o=t(o)||"none";for(var u=e.length,a=seedrandom(o),l=[],s=[],i=0;u>i;i++)l.push(null),s.push(i);for(var i=0;u>i;i++){var f=n(a,0,s.length-1),h=s[f];s.splice(f,1),l[h]=e[i]}return l},"undefined"!=typeof exports?module.exports=e:this.shuffleSeed=e}).call(this);