不要重复 math.random 中的任何项目
don't repeat any items from math.random
我正在使用它从我的数组中获取一个随机项目(并将其附加到每个列表项)
$('li').each(function(){
var items = Array('the','and','to','a');
var item = items[Math.floor(Math.random()*items.length)];
$(this).append(item);
});
我敢肯定这是一件很快的事情,但我真的不知道去哪里看。如何确保没有重复项目?
在这里工作演示
您需要从数组中删除已使用的值。
var items = Array('the', 'and', 'to', 'a');
$('li').each(function () {
var randomNum = Math.floor(Math.random() * items.length)
var item = items[randomNum];
$(this).append(item);
items.splice(randomNum, 1);
});
Se 你的演示在 JsFiddle 上
尝试
var items = new Array('the','and','to','a');
$('li').each(function(){
var item = items.splice(Math.floor(Math.random() * items.length), 1);
$(this).append(item);
});
演示:小提琴
所以你想让元素随机但不重复?然后,您要查找的是随机排列。如果你想要一个快速的解决方案,只需随机交换数组中的元素。如果你想要一个均匀分布的随机排列,看看Eric Lippert关于这个主题的文章:http://ericlippert.com/2013/05/02/producing-permutations-part-six/
相关文章:
- Jquery自动完成:如果没有选择任何项目,则使tab键选择第一个项目
- AngularJs/GitHub :如何在没有任何历史记录的情况下将角度种子克隆到我的新项目中
- 我的Javascript项目正在访问网络摄像头,但没有显示任何内容
- 在数组中有任何项目之前,先查找ng重复模板中的元素数
- 如何在mongodb的边界框中获取任何项目(点,线字符串,多边形)
- 清除搜索词,并在选择任何项目后重新加载 Select2 输入的所有项目
- 单击表中的任何项目,都将该值放在隐藏的输入上
- 为什么在列表角度JS中没有得到任何项目
- JavaScript 没有对我的任何项目进行执行
- 不要重复 math.random 中的任何项目
- 比较两个数组并返回一个新数组,其中包含仅在其中一个原始数组中找到的任何项目
- 如何以任何给定的方式在组合框中显示项目
- 是否有任何Web框架或项目提供“;墙”;类似的功能
- 当我点击这个树的任何项目时,如何创建一个弹出窗口
- 当用户点击时,如何关闭Bootstrap弹出窗口(或任何项目)
- 无法从Select2中选择任何项目
- 我如何从json数据中删除任何项目
- 当用户点击离子项目中的任何项目时,打开新页面
- 当我们从下拉列表中选择任何项目时,如何在类似Facebook的文本框中显示文本
- 调用Facebook共享代码从php一旦用户评价任何项目