給定多個組 (g) 和多個記錄 (r),如何通過均勻分布來計算每個組中有多少記錄?
結果應該和下面的函式一樣,但是如何在不創建每個陣列的情況下得到相同的結果呢?
func = ( g, r ) => {
groups = [...Array(g).keys()].map( () => [] );
for(i=0, j=0; i<r;i ) {
groups[j].push(i);
j ;
if ( j === groups.length) j = 0;
}
return groups.map( (v) => v.length );
}
func(4, 2); //[1, 1, 0, 0]
func(4, 10); //[3, 3, 2, 2]
uj5u.com熱心網友回復:
func = ( g, r ) => {
const groups = Array(g).fill(Math.floor(r / g));
for (let i = 0; i < (r % g); i = 1) {
groups[i] = 1;
}
return groups;
}
首先將每個組設定為可以在它們之間均勻分布的專案數。然后剩余的用于添加剩余的元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/493168.html
標籤:javascript
下一篇:即使狀態沒有改變,也反應渲染組件
