您能告诉我如何从列表中随机选择一个数字,并将其从阵列中删除下次吗? 例如,我有一个数组:
var items = new Array( 2,3,4,5,6,7,8,9,10 );
现在我想在按下一个Pick按钮时选择一个项目,并将拾取的值添加到div中,并从阵列中删除拾取的项目,以便在下一个Pick按钮推动它不会在那里直到选择所有项目。
感谢您的时间
答案 0 :(得分:6)
如果改组阵列并不重要:
items.sort(function() { return 0.5 - Math.random();}).pop();
修改强>
我可能会更清楚一点,因为小提琴并没有真正利用洗牌 数组只需要被洗牌一次以使其随机,之后没有理由再次将其洗牌,只需弹出最后一个值:
var items = new Array( 2,3,4,5,6,7,8,9,10 );
items.sort(function() { return 0.5 - Math.random();})
$('#test').on('click', function() {
var ran = items.pop();
alert(ran ? ran : 'No more numbers in array');
});
答案 1 :(得分:4)
var randomItem = items.splice(Math.random() * items.length | 0, 1)[0];