【问题标题】:How Do I Sum the Total Of The Column Values If some Row Value Is Not Available in Angularjs?如果某些行值在 Angularjs 中不可用,我如何求和列值的总和?
【发布时间】:2017-03-14 07:42:31
【问题描述】:

我在我的应用程序中使用 MEAN 堆栈,并将 AngularJS 作为我的前端。如何total sum 列值,如果表中没有某些行值,实际上我得到了total sum value 但总和〜行值不可用〜总和显示为NaN...My Plunker 例如:- 在表中所有行值都可用意味着amt 值总和答案我得到5775.30,然后在表中如果某些行值不可用意味着amount payment 值总和显示为NaN ,期待像200这样的答案,如果有人知道解决方案,请帮助我们,谢谢....

  • 在表格列中,所有值都可用,我们也得到了准确的答案和总和。

  • 1234563应该计算其余的值...期待amount payment 回答像200...请看my plunker

我的控制器:-

    .filter('sumOfValue', function () {
    return function (data, key) {
        debugger;
        if (angular.isUndefined(data) && angular.isUndefined(key))
            return 0;        
        var sum = 0;

        angular.forEach(data,function(v,k){
            sum = sum + parseFloat(v[key]);
        });        
        return sum.toFixed(2);
    }
})

我的 HTML:-

<td >{{mani.amt}}</td>

  <td >{{mani.amount_payment }}</td>

我的数据:-

        {
    "_id": "5816f4fad0be79f809519f98",
    "user": {
    "_id": "57400c32bd07906c1308e2cf",
    "displayName": "mani selvam"
    },
    "__v": 0,
    "created": "2016-10-31T07:38:34.999Z",
    "remarks": "-",
    "status": "pending",
    "amt": "1925.10",
    "cheque_currency": "Rs",
    "cheque_value": "300",
    "amount_payment": "1,925.10",
    "debitnote_no_payment": "3",
    "supplier_name": "karikalan",
    "buyer_name": "Manidesigns"
    },

    {
    "_id": "5816f4fad0be79f809519f98",
    "user": {
    "_id": "57400c32bd07906c1308e2cf",
    "displayName": "mani selvam"
    },
    "__v": 0,
    "created": "2016-10-31T07:38:34.999Z",
    "remarks": "-",
    "status": "pending",
    "amt": "1925.10",
    "cheque_currency": "Rs",
    "cheque_value": "300",
    "amount_payment": "1,925.10",
    "debitnote_no_payment": "3",
    "supplier_name": "karikalan",
    "buyer_name": "Manidesigns"
    },

  {
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},

我创建了 Plunker 供参考:- Plunker

【问题讨论】:

    标签: html css angularjs meanjs


    【解决方案1】:

    如果值不是有效数字,则 parseFloat() 方法将返回 NaN。所以你得到的结果是 NaN。跳过所有无效值。下面的例子。希望这会有所帮助。

    angular.forEach(data, function(v,k){
               var value = parseFloat(v[key]);
               if(isNaN(value)) {
                 return;
               }
               sum = sum + value; 
            }); 
    

    【讨论】:

    • 嘿,感谢您的宝贵回答,您能否在 plunker 中更新上面给出的答案以及了解解决方案,谢谢
    【解决方案2】:

    更改了您的一些代码:检查 javascript 的 isNAN 函数

    angular.forEach(data, function(v, k) {

      var keyval;
      if(isNaN(parseFloat(v[key])))
      keyval=0;
      else
      keyval=parseFloat(v[key]);
      sum = sum + keyval;
    });
    

    【讨论】:

    • 嘿 @ Simanchal 感谢您的宝贵回答,您能否在 plunker 中更新上述给出的答案以及了解解决方案,谢谢
    • 立即检查 plunkr
    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多