首页 > 解决方案 > Javascript 不会将 json 元素识别为数字

问题描述

我正在处理一个 json 对象并希望显示一个带两位小数的数字,但 javascript 说该类型是“未定义”。

我试过使用 .toFixed(2)、Number() 和 ParseFloat() 来强制它是一个数字,我什至试过 String() 来强制它变成一个字符串,但它顽固地保持为 '不明确的'。typeof 甚至不被识别为原始元素的属性。

当然有一种方法可以转换它/正确定义它。我很感激帮助和解释为什么我正在做的事情不起作用。

data = {
  list: {
    9: {
      balance: 256.3999999999942
    }
  },
  action: 'load',
  status: 'ACCTLOADED'
}

showAccounts(data);

function showAccounts(data) {
  action = data.action;
  status = data.status;
  accs = data.list;

  if ((action == 'load') && (status == 'ACCTLOADED')) { // data retrieved
    $.each(accs, function(acc, details) { // display each account
      let bal = 0;
      bal = Number(details.balance);
      console.log('bal ' + bal + bal.typeof);
    });
  }
} // end function showAccounts
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

标签: javascriptundefined

解决方案


我认为 bal 已经是数字的类型。像这样使用:

console.log('bal ' + bal + typeof bal);

推荐阅读