【问题标题】:Calculate the percentage and put it into a progressbar计算百分比并将其放入进度条
【发布时间】:2014-08-14 18:54:39
【问题描述】:

您好,我有一些来自 2014 年世界杯的数据,我会存储该人是否正确投注了比赛。

看起来像这样(angularjs-controller 中的数据):

 $scope.users=  [{
             id: 1,
             name: 'Jake',
             loss: 22,        
             win: 10
         },
         {
             id: 2,
             name: 'Bran',
             loss: 18,
             win: 14
         }];

我想计算获胜次数的百分比。 如果我将总胜场数除以总比赛数,例如 18/(18+14) = 56%,就可以做到这一点。 我需要从 json 中的每个用户那里获取数据并计算获胜的百分比。 稍后我想将该百分比添加到视图中每个用户的进度条:

<div class="progress progress-striped">
  <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
    <span class="sr-only">40% Wins</span>
  </div>

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript angularjs twitter-bootstrap


    【解决方案1】:

    你可以这样做:

    <div class="progress progress-striped" ng-repeat="user in users">
      <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: {{(user.win)/(user.win+user.loss)}}%">
        <span class="sr-only">{{(user.win)/(user.win+user.loss)}}% Wins</span>
      </div>
    </div>
    

    【讨论】:

    • 对不起,我不够清楚,我需要每个用户的 %,并将其显示在每个用户的进度条上。
    • 我不明白。你能说得更准确点吗?
    • 好的,所以每个用户都有“Wins”的数据,假设我想在他们自己的进度栏中为每个用户呈现“Win”。 Jake 有一个进度条,Bran 有一个进度条,我需要从每个用户那里获取“Win”并将其放入相应的进度条中。
    【解决方案2】:

    这应该很适合你。

    const users = [ // Total number of each user trials = 32
      { id: 1, name: 'Jake', win: 10, loss: 22 },
      { id: 2, name: 'Ann', win: 14, loss: 18 },
      { id: 3, name: 'Emeka', win: 30, loss: 2 },
      { id: 4, name: 'Mike', win: 32, loss: 0 },
    ];
    
    const calculateWinPercentage = (win, loss) => {
      // add each user win and loss,
      // divide it by user win,
      // multiply the result by 100.
    
      console.log((win / (win + loss)) * 100);
      return (win / (win + loss)) * 100;
    };    
    
    <div class="info_div">
      {users.map((user) => {
        const winPercentage = calculateWinPercentage(user.win, user.loss);
    
        return (
          <div key={user.id} class="progress">
            <div
              class="progress-bar"
              role="progressbar"
              style={{
                width: winPercentage + "%",
              }}
              aria-valuenow={winPercentage}
              aria-valuemin="0"
              aria-valuemax="100"
            >
              {winPercentage}% Wins
            </div>
          </div>
        );
      })}
    </div>
    

    【讨论】:

    • 请在您的代码中添加注释并解释您的答案
    猜你喜欢
    • 2015-10-12
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2021-05-18
    • 2013-03-04
    相关资源
    最近更新 更多