[英]How to achieve a sorted but random list with javascript/jquery
我目前使用此代码对我的项目列表进行随机排序,并且效果很好:
$(document).ready(function () {
(function ($) {
$.fn.randomize = function (childElem) {
return this.each(function () {
var $this = $(this);
var elems = $this.children(childElem);
elems.sort(function () {
return (Math.round(Math.random()) - 0.5);
});
$this.remove(childElem);
for (var i = 0; i < elems.length; i++)
$this.append(elems[i]);
});
};
})(jQuery);
(function ($) {
if (window.location.href.indexOf("st=") > -1) {
} else {
$('#itemBlock').randomize('.list_1');
}
})(jQuery);
});
但是,当我想出一种方法来修改此脚本以按一定顺序随机返回结果时,我感到很沮丧。 例如,与之配合使用的列表返回了所有5家商店中所有特定类型商品的清单。 因此,如果有人在寻找围裙,它将显示我们5家商店中每家的所有围裙。
上面的代码肯定会随机列出该列表,但我不知道如何考虑商店位置。
因此,现在搜索围裙将首先从商店A,B,C,D和E返回如下列表:
BCDAEBCDDDCEABBACACABCDAA
但是我们想要实现的是这样的回报:
ABCDEABCDEABCDEABCDEABCDE
不一定完全按照该顺序,而是以某种方式修改函数,以便在加载更多结果之前先加载每个存储区的结果。 因此,一家商店不会连续出现3家商店,否则一家商店的代表人数会更多。
我可以通过使用过滤器或排序功能来解决此问题吗? 还是纯JavaScript会更有效地处理此问题?
为此,您必须执行以下步骤:
[padded item number]|[store identifier]
例如00001|A
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.