如何实现一个排序,但随机列表与javascript/jquery
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
不一定按照这个顺序,但可以通过某种方式修改函数,以便在加载更多结果之前加载每个store的结果。所以不会有连续3家店,或者一家店比其他店多。
我应该使用过滤器或排序函数来处理这个问题吗?或者纯javascript会更有效地处理这个问题吗?
要实现这一点,您必须遵循以下步骤:
- 随机从每个商店单独排序物品
- 为每个随机列表中的项目编号
- 可选-如果您希望存储顺序,用零填充数字并附加存储标识符(
[padded item number]|[store identifier]
例如00001|A
) - 将所有列表合并为一个
- 按顺序编号(或字符串)对新列表进行排序
相关文章:
- 如何在 Javascript/jQuery 中获取一些随机下拉列表的选定值
- 如何随机显示列表项的顺序
- 在列表中至少使用两次随机生成的nr
- 如何使用CSS在列中显示随机生成的列表
- 如何在Javascript中设置随机生成的项目列表的样式
- 我如何得到一个有序的列表,随机吐出列表中的一些
- 如何提交从列表中随机选择的非重复变量
- 如何在一个随机化的有序列表中随机化多个无序列表
- 如何从列表中突出显示一个随机单词
- 如何使用JavaScript随机化有序列表
- 如何使用JavaScript在HTML5网站上随机选择歌曲播放(从列表中)
- 从1-9之间的随机数字列表中选出3个相同的数字
- 从列表中选择随机段落
- 从数组列表中随机选择一个段落 Javascript
- 随机音频列表在调用时不播放
- 给定一个很长的列表,我如何随机选择 X 元素
- 如何使用NightwatchJS从下拉列表中选择一个有效的随机值
- 反应:在列表随机播放的连续渲染上会发生什么
- 将无序列表随机化
- 大列表随机文本/URL - Opi