JavaScript获得NaN

时间:2018-06-26 16:29:12

标签: javascript report nan

当我汇总报告的各列时,我得到了NaN。另外,我的查询检索1行,但网格显示2行。

关于如何解决此问题的任何想法?预先感谢!

$.each(data["resultado"], function(key, item) {
  totalPago += item.MontoPagado;
  item.MontoPagado = item.MontoPagado.formatMoney(2, '.', ',');
  self.TotalPagado(totalPago);

  // Billete Mil
  totalMil += item.mil;
  self.tMil(totalMil);
  console.log(item);

  //Billete Quinientos
  totalQuinientos += item.Quinientos;
  self.tQuinientos(totalQuinientos);

  //Billete Doscientos
  totalDoscientos += item.doscientos;
  self.tDoscientos(totalDoscientos);

  //Billete Cien
  totalCien += item.cien;
  self.tCien(totalCien);

  //Billete Cincuenta
  totalCincuenta += item.cincuenta;
  self.tCincuenta(totalCincuenta);

  self.listaReporte.push(item);
});

self.TotalPagado(totalPago.formatMoney(2, '.', ','));
self.tMil(totalMil);
self.tQuinientos(totalQuinientos);
self.tDoscientos(totalDoscientos);
self.tCien(totalCien);
self.tCincuenta(totalCincuenta);

Report Displayed

1 个答案:

答案 0 :(得分:0)

面额都在Denominacion对象内部,因此您需要使用item.Denominacion.militem.Denominacion.Quinientos等。

Number.prototype.formatMoney = function(c, d, t) {
  var n = this,
    c = isNaN(c = Math.abs(c)) ? 2 : c,
    d = d == undefined ? "." : d,
    t = t == undefined ? "," : t,
    s = n < 0 ? "-" : "",
    i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))),
    j = (j = i.length) > 3 ? j % 3 : 0;
  return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

var data = {
  "estatus": true,
  "mensaje": "",
  "resultado": [{
    "Fecha": "2018-05-05T00:00:00",
    "IDEmpleado": 456,
    "NombreCompleto": "Jose Luis",
    "MontoPagado": 2079.26,
    "Denominacion": {
      "dosmil": 0,
      "mil": 2,
      "Quinientos": 0,
      "doscientos": 0,
      "cien": 0,
      "cincuenta": 1,
      "veinticinco": 1,
      "diez": 0,
      "cinco": 0,
      "uno": 4,
      "dosmilTotal": 0,
      "milTotal": 0,
      "quinientosTotal": 0,
      "doscientosTotal": 0,
      "cienTotal": 0,
      "cincuentaTotal": 0,
      "veinticincoTotal": 0,
      "diezTotal": 0,
      "cincoTotal": 0,
      "unoTotal": 0
    }
  }]
};

var totalPago = 0;
var totalDosmil = 0;
var totalMil = 0;
var totalQuinientos = 0;
var totalDoscientos = 0;
var totalCien = 0;
var totalCincuenta = 0;

data["resultado"].forEach(function(item) {
  totalPago += item.MontoPagado;
  item.MontoPagado = item.MontoPagado.formatMoney(2, '.', ',');

  // Billete Mil
  totalMil += item.Denominacion.mil;
  //console.log(item);

  //Billete Quinientos
  totalQuinientos += item.Denominacion.Quinientos;

  //Billete Doscientos
  totalDoscientos += item.Denominacion.doscientos;

  //Billete Cien
  totalCien += item.Denominacion.cien;

  //Billete Cincuenta
  totalCincuenta += item.Denominacion.cincuenta;

});

console.log(totalPago.formatMoney(2, '.', ','));
console.log(totalMil);
console.log(totalQuinientos);
console.log(totalDoscientos);
console.log(totalCien);
console.log(totalCincuenta);