Javascript 不会将 json 元素识别为数字
Javascript won't recognise json element as number
我正在处理一个 json 对象并想显示一个有两位小数的数字,但是 javascript 说类型是 'undefined'.
我尝试过使用 .toFixed(2)、Number() 和 ParseFloat() 强制它成为一个数字,我什至尝试过 String() 强制它变成一个字符串,但是它固执地保持为 'undefined'。 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>
我认为 bal 已经是数字类型了。
像这样使用:
console.log('bal ' + bal + typeof bal);
我正在处理一个 json 对象并想显示一个有两位小数的数字,但是 javascript 说类型是 'undefined'.
我尝试过使用 .toFixed(2)、Number() 和 ParseFloat() 强制它成为一个数字,我什至尝试过 String() 强制它变成一个字符串,但是它固执地保持为 'undefined'。 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>
我认为 bal 已经是数字类型了。 像这样使用:
console.log('bal ' + bal + typeof bal);