Array random Pick
by HYEONGJINKIM
HTML
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
JavaScript
/*function rand(items){
return items[~~(Math.random() * items.length)];
}
Array.prototype.pick = function (i) {
return this.splice(i >= 0 ? i : Math.random() * this.length | 0, 1)[0];
};
var teams = ['patriots', 'colts', 'jets', 'texans', 'ravens', 'broncos'];
console.log(rand(teams));
console.log(teams);
console.log(teams.pick(0));
console.log(teams.pick(1));
console.log(teams.pick(2));
console.log(teams.pick(3));*/
(function($) {
$.fn.random = function(){var ret = $();if(this.length > 0){ret = ret.add(this[Math.floor((Math.random() * this.length))]);}return ret;};
})(jQuery);
(function($){
$.fn.rand = function(cnt){
var cnt = cnt || 1;
var elements = $(this).get();
var ret = $();
for(var i=1, cnt; i<=cnt; i++){
(function(i){
var elePick = elements.splice(~~(Math.random() * elements.length), 1);
ret = ret.add(elePick);
}(i));
}
return ret;
};
})(jQuery);
//console.log($('li').rand(2));
//console.log($('li').rand(2).length);
$('li').rand(3).css('border' , '1px solid red');