-1

假设我有用户 1、用户 2 和用户 3。用户 1 有 10 倍,用户 2 有 50 倍,用户 3 有 40 倍。有奖励,奖励为1y。如何根据与每个用户相关的变量相应地分配奖励?用户数据存储在 sqlite 数据库中。

4

2 回答 2

0

我无法发表评论,因为我没有足够的声誉,所以我将其发布为答案

根据你的说法,

100x of reward = 1y;

所以对于一个拥有 1x 的用户的奖励是,

1x of reward = 1y / 100;

例如,如果用户获得 40 倍的奖励,那么

40x reward = 1y / 100 * 40

您可以像这样计算 x 的任何乘数的奖励

(reward_multiplier)x reward = 1y / 100 * (reward_multiplier)
于 2020-06-12T16:56:38.307 回答
0

尝试这个:

const users = [
  {name: 'user 1', weight: 10},
  {name: 'user 2', weight: 50},
  {name: 'user 3', weight: 40}
]
const reward = 200

const totalWeight = users.reduce((total, {weight}) => total += weight, 0)
const splitReward = users.reduce((obj, {name, weight}) => {
  obj[name] = reward * weight / totalWeight
  return obj
}, {})
console.log(splitReward)

于 2020-05-20T01:34:49.217 回答