简体   繁体   English

如何从数组中获取随机数量的项目?

[英]How to do I get a random ranged number of items from an array?

I'm using the code below to get a random number of items from an array, but I'd like to just get 3-5 random numbers from the provided range to display.我正在使用下面的代码从数组中获取随机数的项目,但我只想从提供的范围中获取 3-5 个随机数来显示。 Right now, it either shows 1, all, or any amount in between.现在,它显示 1、全部或介于两者之间的任何数量。 I'm also good with completely changing up my strategy, so any and all advice is welcome.我也很擅长完全改变我的策略,所以欢迎任何和所有的建议。 Much appreciated.非常感激。

<script type="text/javascript" src="https://fiftyallstars.com/Code/jquery-2.2.4.js"></script>

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>

<script type="text/javascript">
$('div').filter(function(){
    return (Math.round(Math.random()) == 1);
}).css({display: 'none'});
</script>

STEP 1: Shuffle the array第 1 步:随机排列数组

STEP 2: Randomly pick a number b/w 3 to 5.第 2 步:从 3 到 5 随机选择一个数字。

STEP 3: From the beginning (or end) of the shuffled array pick random number of elements.第 3 步:从打乱数组的开头(或结尾)选择随机数量的元素。

 const arr = ["apple", "mango", "banana", "grape", "orange", "guava", "melon", "watermelon"]; const shuffledArr = arr.sort(() => 0.5 - Math.random()); const getRandom = (arr, min, max) => { const numItemsToPick = Math.floor(Math.random() * (max-min+1)) + min return arr.slice(0, numItemsToPick) } const randomArr = getRandom(shuffledArr, 3,5) console.log(randomArr)

let ar = $('div'); //  get all the divs 
let start = Math.round(Math.random()*ar.length); // get random start 
let end = Math.round(Math.random()*ar.length); // get random end 

ar.splice(start,end).forEach(item=>{  // for getting random elements 
    item.style.display='none'
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM