我有一个NodeJS快速代码,它只是以请求-响应格式将数据从客户端传递到后端服务器。 现在,我的客户端期望 JSON 响应中的美元金额为双精度数据类型。 我如何动态地做到这一点。 例如下面,
var data = [
{
"feeType":"Trip",
"feeCategory":"Transaction",
"feeAmount":0,
"isApplicable":true,
"isRequired":true,
"applicableDeliveryType":"None",
"appliedFeeAmount":0
},
{
"feeType":"FerryFee",
"feeCategory":"Passenger",
"feeAmount":2,
"isApplicable":true,
"isRequired":false,
"applicableDeliveryType":"None",
"appliedFeeAmount":2
},
{
"feeType":"WillCall",
"feeCategory":"Service",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"Pickup",
"appliedFeeAmount":0
},
{
"feeType":"NotTravelling",
"feeCategory":"Service",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"PrintAtHome",
"appliedFeeAmount":0
},
{
"feeType":"Pickup",
"feeCategory":"Delivery",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"None",
"appliedFeeAmount":0
},
{
"feeType":"PrintAtHome",
"feeCategory":"Delivery",
"feeAmount":0,
"isApplicable":false,
"isRequired":false,
"applicableDeliveryType":"None",
"appliedFeeAmount":0
}
]
我的客户期望作为带有 .0 或十进制数字的数字值。我该怎么做?
使用Object.entries
遍历对象并使用.toFixed()
添加小数
:
const data = [{
"feeType": "Trip",
"feeCategory": "Transaction",
"feeAmount": 0,
"isApplicable": true,
"isRequired": true,
"applicableDeliveryType": "None",
"appliedFeeAmount": 0
},
{
"feeType": "FerryFee",
"feeCategory": "Passenger",
"feeAmount": 2,
"isApplicable": true,
"isRequired": false,
"applicableDeliveryType": "None",
"appliedFeeAmount": 2
}
]
const result = data.map(o => Object.entries(o).reduce((acc, [key, value]) => {
acc[key] = typeof value.toFixed === 'function' ? value.toFixed(1) : value;
return acc;
}, {}))
console.log(result);
或for .. in
:
const data = [{
"feeType": "Trip",
"feeCategory": "Transaction",
"feeAmount": 0,
"isApplicable": true,
"isRequired": true,
"applicableDeliveryType": "None",
"appliedFeeAmount": 0
},
{
"feeType": "FerryFee",
"feeCategory": "Passenger",
"feeAmount": 2,
"isApplicable": true,
"isRequired": false,
"applicableDeliveryType": "None",
"appliedFeeAmount": 2
}
]
const result = [];
data.forEach(o => {
const tempObj = {};
for (let key in o) {
tempObj[key] = typeof o[key].toFixed === 'function' ? o[key].toFixed(1) : o[key];
}
result.push(tempObj);
});
console.log(result);