【问题标题】:how to assign json.stringify() to javascript variable如何将 json.stringify() 分配给 javascript 变量
【发布时间】:2017-06-09 11:12:36
【问题描述】:

在这段代码中,我想通过这一行计算我从 excel 文件中获取的特定数据的总和:

 " sumofKoli += JSON.stringify(row.values[4]);".

我的问题是,即使是这行代码:

console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4]));

给出我想要的“47”,当我尝试对所有数据求和时,我得到的结果类似于“94559129995555.5.2556149.9”。它将它添加为一个字符串值,我希望它作为整数求和。你能帮帮我吗?

这里是完整的代码:

Reader.prototype.readExcel = function(chartType,callback){


  // read from a file
  var workbook = new Excel.Workbook();
  var sumofKoli=0;
  var sumPrice =0;
  workbook.xlsx.readFile(filename)
      .then(function(err,results) {
          var worksheet = workbook.getWorksheet('Sayfa1');
          worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
            console.log("----------");
            console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4]));
            console.log("----------");
            sumofKoli += JSON.stringify(row.values[4]);
            console.log(JSON.stringify(row.values[3])+" Sold in price of  :"+ JSON.stringify(row.values[5]));
            sumPrice += JSON.stringify(row.values[5]);
            console.log("----------");

          });
          results = { sumofKoli : sumofKoli, sumTutar : sumPrice};
          if (err){callback(err,null);}

          callback(null,results);
      });

【问题讨论】:

  • 您正在尝试添加类型为string 的变量和类型为integer 的变量。

标签: javascript json node.js string integer


【解决方案1】:

您必须使用parseInt 将字符串转换为数字

sumofKoli += parseInt(JSON.stringify(row.values[4]));

【讨论】:

  • 他明确表示他想要一个整数
  • 谢谢大家的回答,但是当我尝试时它返回 NaN : sumPrice += parseFloat(JSON.stringify(row.values[5])); sumPrice += parseFloat(JSON.stringify(row.values[5]));两种解决方案都返回“NaN”值。
  • 能否给我们行对象内的数据
  • 好的,NaN 是块的结果。现在,我能够得到行数据的总和。非常感谢!
  • 为什么要对数字进行字符串化以立即将其解析回数字?怎么样:sumofKoli += Math.floor(row.values[4])
【解决方案2】:

在尝试求和时,使用 parseInt(或 parseFloat,如果您有小数)函数将您的 json 值转换为整数。

由于您的值当前被视为字符串,因此它当前将它们连接起来而不是添加它们。

【讨论】:

    【解决方案3】:

    如果您的数据只是整数,则在添加时使用parseInt 而不是JSON.stringify。如果您也有浮点值,请使用parseFloat。语法很简单:

    sumofKoli += parseInt(row.values[index])

    【讨论】:

      【解决方案4】:

      OP 要求对整数求和,因此类似于 Vladu Ionut 的答案应该是:

      sumofKoli += parseInt(JSON.stringify(row.values[4]));

      但是,你为什么要对 JSON 进行字符串化然后解析呢?为什么不直接使用值呢?

      sumofKoli += parseInt(row.values[4]);

      将某些东西串起来然后再进行转换似乎很奇怪。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-04
        • 2014-05-19
        • 2023-03-26
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多