两个方法
<script>
const getRangeNumber = (num, avg, i) => {
const max = Math.ceil(avg) * (i + 1)
const randomNumber = Math.floor(Math.random() * avg)
return Math.ceil(max - randomNumber)
}
const getLastRangeNumber = (max, min) => {
const a = Math.floor(Math.random() * (max - min))
return max - a
}
</script>
事件调用
let arr = [
{id: 1, test: 6},
{id: 2, test: 4},
{id: 3, test: 5},
];
let num = 29;
const list = []
let blockNumber = 0
arr.forEach(item => blockNumber += item.test)
const avg = num / blockNumber
const ceilAvg = Math.ceil(avg)
const hasNumber = avg === ceilAvg
debugger
for(let i = 0; i < blockNumber; i++) {
if(!hasNumber) {
if(i >= blockNumber -1) {
list.push(getLastRangeNumber(num, ceilAvg * i))
break
}
list.push(getRangeNumber(num, avg, i))
} else {
list.push(getRangeNumber(num, avg, i))
}
}
console.log(list);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。