Javascript 在JS中抽奖获奖者

Javascript 在JS中抽奖获奖者,javascript,Javascript,我正在尝试抽奖游戏的中奖者,我只是不确定如何根据彩票号码来决定哪个用户应该中奖 买票的用户被排在前面买票的用户后面 var lotteryTickets = [ { name: 'John Smith', tickets: 291 }, { name: 'Bob the Builder', tickets: 302 }, { name: 'Elizabeth', tickets: 72 } ] var lotteryT

我正在尝试抽奖游戏的中奖者,我只是不确定如何根据彩票号码来决定哪个用户应该中奖

买票的用户被排在前面买票的用户后面

var lotteryTickets = [
    {
    name: 'John Smith',
    tickets: 291
  },
  {
    name: 'Bob the Builder',
    tickets: 302
  },
  {
    name: 'Elizabeth',
    tickets: 72
  }
]

var lotteryTotal = 0;
lotteryTickets.forEach(function(data){
    lotteryTotal = lotteryTotal + data.tickets;
})

$('.tickets').text(lotteryTotal);

var winningTicket = parseInt(Math.random() * lotteryTotal);
$('.winner').text(winningTicket);
我怎样才能正确地决定哪位玩家会中彩票?

尝试在用户之间循环:

var票证=0;
var=0;
对于(var i=0;i
你可以把它和第一个循环合并在一起,你必须计算总票数


一种蛮力方法是再次遍历lotteryTickets数组

function getWinner(lotteryTickets,winningTicket){
var count = 0
lotteryTickets.forEach(function(data){
    count += data.tickets
    if(count >= winningTicket){ 
         return data.name
    }
   }

如果你能记录每个人都有哪些票,而不仅仅是有多少票,那对你会有很大的帮助。@egc8这不重要。约翰·史密斯自动拥有0-291,鲍勃拥有291-(291+302)等。好吧,那么如果鲍勃稍后回来又买了100张票怎么办?@ecg8他在伊丽莎白之后又获得了一个条目,有100张票。修正。对不起,我放了一个
而不是
,效果很好!返回未定义的