最近在做一个项目,用户的需求大概是这样的:用户先添加大量的视频,然后用户可以输入一个数字,可以动态指定一个数组里面有多少个视频。
也就是说,总数和需要的个数都是动态的,不确定的。
实现思路就用不重复的随机数解决:
效果图:
实现代码:
<template>
<div class="container">
<el-button @click="getRandomNum(needNum,allNum)">js生成不重复的随机数</el-button>
</div>
</template>
<script>
export default {
data() {
return {
needNum: 4, //需要几个随机数
allNum: 10, //随机数范围从 0 到 allNum - 1随机选取
getRandomList: [], //获取生成的随机数数组
}
},
methods: {
getRandomNum(needNum,allNum) {
let randomList = []; //生成的随机数组
while (randomList.length < needNum) {
let num = Math.floor(Math.random() * allNum);
if (randomList.indexOf(num) == -1) {
randomList.push(num)
}
}
this.getRandomList = randomList;
console.log(this.getRandomList,'this.getRandomList')
},
}
};
</script>
<style lang="scss">
.container {
padding: 50px;
background-color: white;
height: 100%;
}
</style>
生成不重复的随机数,代码也就几行,理解indexOf就可以了
不是用vue的兄弟们, 把getRandomNum方法复制一下就可以了 。
加油