鑒于這個陣列
{"easy"=>85%, "medium"=>10%, "hard"=>3%, "very hard"=>2%}
我必須添加一個數量并通過獲得它的概率來分配可能的結果。
結果示例:
Added 10 "amounts"
Result:
Easy -> 8 amounts
Medium -> 2 amounts
Hard -> 0 amounts
very hard-> 0 amounts
在沒有大量 ifs 和計算,任何公式的情況下,最好的方法是什么?
uj5u.com熱心網友回復:
您可以使用map接受物件輸入的通用函式來執行此操作-
const map = (t, f) =>
Object.fromEntries(Object.entries(t).map(([k,v]) => [k,f(v)]))
const amounts = (t, n) =>
map(t, v => Math.round(n * v)) // <- use `map` here
const input =
{easy:0.85, medium:0.1, hard:0.03, vhard:0.02}
console.log(amounts(input, 10))
{
"easy": 9,
"medium": 1,
"hard": 0,
"vhard": 0
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/312874.html
標籤:javascript 查询 数学 数学优化
下一篇:Java將陣列添加到陣列特殊模式
