Implement Array Shuffling in MooTools
While shuffling the order of array elements isn't a greatly useful function, I recently found myself needing to accomplish the task. I found a great post about how to achieve this feat using jQuery. Here's how to implement array shuffling in MooTools.
The MooTools JavaScript
Array.implement({
shuffle: function() {
//destination array
for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
return this;
}
});
This likely wont be used in the core framework but does have its uses.
![Interview with a Pornhub Web Developer]()
Regardless of your stance on pornography, it would be impossible to deny the massive impact the adult website industry has had on pushing the web forward. From pushing the browser's video limits to pushing ads through WebSocket so ad blockers don't detect them, you have...
![9 More Mind-Blowing WebGL Demos]()
With Firefox OS, asm.js, and the push for browser performance improvements, canvas and WebGL technologies are opening a world of possibilities. I featured 9 Mind-Blowing Canvas Demos and then took it up a level with 9 Mind-Blowing WebGL Demos, but I want to outdo...
![DWRequest: MooTools 1.2 AJAX Listener & Message Display]()
Though MooTools 1.2 is in its second beta stage, its basic syntax and theory changes have been hashed out. The JavaScript library continues to improve and become more flexible.
Fellow DZone Zone Leader Boyan Kostadinov wrote a very useful article detailing how you can add a...
![CSS Selection Styling]()
The goal of CSS is to allow styling of content and structure within a web page. We all know that, right? As CSS revisions arrive, we're provided more opportunity to control. One of the little known styling option available within the browser is text selection styling.
Another way (more elegant in my opinion):
Array.implement({ shuffle:function() { this.sort(function (x,y) { return Math.floor(Math.random()*3)-1; }); return this; } }); alert([1,2,3,4,5,6,7,8].shuffle());@Elad: Awesome! Nice work. Definitely more elegant.
Just a note that you can do cool stuff like this with Array Shuffling. :)
@Lim Chee Aun: Awesome!
I’ll point out that @David’s example is guaranteed to not require any additional storage space (it shuffles in place), is unbiased toward permutations, and runs in O(n) time. @Elad’s shuffle depends on the browser’s implementation of sort(). It may require more storage space, it may be biased to certain permutations, and it will run in O(n log n) time or worse due to the nature of sorting. However, I’m guessing that anything shuffled in JS is going to be small and no one will care if it is biased as long as it “seems” random.
I’ve tested both Elad and David script on a 27 lenght array… the shuffling is far better using David’s one….
Anyone for the best of both world : efficiency and elegance ?
Anyway thank you so much for the tip !
I’m trying to learn mootools (both in a general sense, and all over again with 1.2), and javascript OOP at the same time. How I use this to shuffle the order of some list elements on a webpage?
And, if you don’t mind, how would I do this in 1.1 vs. 1.2?
Hehe although the original idea is older than my mom (probably no one here knows the creator of this…), I would be glad if people could copy my things keeping the credits ^^
http://jsfromhell.com/array/shuffle