我真的很挣扎,所以也许你们中的一些人有一些漂亮的提示?
我想做什么 我想创建一个包含两列的表(" name"和" rating")。我有5排。
在此之前没有问题:到目前为止这是我的jsFiddle:http://jsfiddle.net/HT89v/2/
BUT: 我想要洗牌"收视率"在前4行中,前两行总是不具有很高的等级"并且第3和第4行总是没有非常低的等级"。我想随机洗牌。
第5行不应受到影响。
我试图在jsfiddle中实现.shuffle插件,但我不知道我做错了什么。
function noNorm(){
document.getElementById("rating4").innerHTML = [Math.floor(Math.random()*5) + 6];
for (var i = 0; i <= 1; i++){
document.getElementById("rating"+i).innerHTML = [Math.floor(Math.random()*5) + 6];
};
for (var i = 2; i <= 3; i++){
document.getElementById("rating"+i).innerHTML = [Math.floor(Math.random()*5) + 1];
};
};
noNorm();
jQuery(function($){
$('#rating0', '#rating1', '#rating2', '#rating3').shuffle();
});
(function($){
$.fn.shuffle = function() {
return this.each(function(){
var items = $(this).children().clone(true);
return (items.length) ? $(this).html($.shuffle(items)) : this;
});
}
$.shuffle = function(arr) {
for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
return arr;
}
})(jQuery);
非常感谢你!
答案 0 :(得分:1)
有许多使用javascript对数组进行混洗的解决方案。 如果我理解你的问题是正确的,那应该可以解决问题:http://jsfiddle.net/HT89v/6/
在给ratings[]
赋值之前,我将整个ratings[4]
数组洗牌,以便第5行不受影响。