Javascript JQuery-向数组中添加随机数,然后在打印数组之前检查是否有重复
我正在尝试编写一个“for”循环,它将遍历一个数组中30首歌曲的列表,然后打印一个数组中20个随机项的列表,不重复Javascript JQuery-向数组中添加随机数,然后在打印数组之前检查是否有重复,javascript,html,jquery,css,arrays,Javascript,Html,Jquery,Css,Arrays,我正在尝试编写一个“for”循环,它将遍历一个数组中30首歌曲的列表,然后打印一个数组中20个随机项的列表,不重复 var items = []; var songList = []; var pastSongs = []; for (i = 1; i <= 30; i++) { items.push("song" + i); } $(".btn").click(function getRandom() { for (g = 1;
var items = [];
var songList = [];
var pastSongs = [];
for (i = 1; i <= 30; i++) {
items.push("song" + i);
}
$(".btn").click(function getRandom() {
for (g = 1; g <= 20; g++) {
var randomItem = (items[Math.floor(Math.random() * items.length)]);
$("h2").text(randomItem);
songList.push(randomItem);
if (pastSongs.includes(randomItem)) {
$("p").text("repeat");
} else {
$("p").text(songList);
(pastSongs).push(randomItem);
}
}
});
var项目=[];
var-songList=[];
var passsongs=[];
对于(i=1;i请查看以下有关如何洗牌数组的内容:
然后你可以通过弹出最后10个元素或循环收集前10个元素来获取该数组的前20个元素。这样比随机选择足够的次数,然后在数组中筛选重复的元素更快,如果我只关注问题标题的话
向数组中添加随机数,然后在打印数组之前检查是否有重复
撇开“假定”用例不谈,其中建议的关于“洗牌现有数组”的副本将非常好。如果您想创建一个唯一的数字数组,其值的数量长度介于min
和max
之间,以下是方法:
函数GetArrayFuniqueranDomainNumber(最小值、最大值、数量){
让结果=[];
如果(金额!==未定义和金额 log(getArrayOfuniqueRandomNumbers(0,30,20))
只需使用一个洗牌算法,这能回答您的问题吗?我的答案也可能有帮助