javascript - 在javascript中格式化对象
问题描述
我的应用程序是 react 和 redux 技术。
我创建了一个帮助器来格式化我的帐户账单和资金,如下所示:
export const formatBill = (bill) => ({
...bill,
amountMoney: bill.amountMoney?.toLocaleString(undefined, {
minimumFractionDigits: 2,
}),
accountBillNumber: bill.accountBillNumber
.replace(/(^\d{2}|\d{4})+?/g, '$1 ')
.trim(),
});
多亏了这一点,我可以在 redux reducer 中做一些事情,并且效果很好:
...
case GET_BILLS_SUCCESS:
draft.bills = action.bills.map(formatBill);
break;
...
现在我有一个问题,因为我想用这个函数来记录转账历史。问题是我的有效载荷看起来不那么友好。它类似于:
transactions: {
data: [
{
amountMoney: '10.00',
recipientBill: {
uuid: '8b9cef86-3987-4a71-badc-996caca8d8e0',
accountBillNumber: '19282292972339385206612752',
currency: {
name: 'PLN',
},
user: {
uuid: 'c58a9b81-2d16-4b07-804d-0b1fc34381ed',
}
},
senderBill: {
uuid: '6308be25-5bde-4f63-83d1-7bd47a829e61',
accountBillNumber: '76282292974456140174811708',
currency: {
name: 'USD',
},
user: {
uuid: 'af031321-f64b-4e91-948b-0c8c8ac4804c',
}
}
}
],
meta: {
page: 1,
take: 10,
itemCount: 1,
pageCount: 1
}
};
所以现在我想formatBill()
付账recipientBill.accountBillNumber
,senderBill.accountBillNumber
我怎样才能很好地把它保存在 redux reducer 中?我试图解决与此类似的问题,但这不是正确的解决方案:
case GET_TRANSACTION_HISTORY_SUCCESS:
draft.transactions.data = [
action.transactions.data.map((transaction) =>
formatBill(transaction.recipientBill),
),
action.transactions.meta,
];
break;
解决方案
推荐阅读
- python - 将 int 返回为 None
- python - pipenv 安装错误 ImportError:无法导入名称“ensure_file_on_disk”
- javascript - 如何在查询参数reactjs中传递数组
- tensorflow - Tensorflow 图像字幕教程 - 解码器 RNN 状态
- amazon-web-services - 为 Amazon sagemaker 笔记本创建两个生命周期配置脚本
- powershell - PowerShell:在哈希表值集合中排序
- javascript - 为什么我的递归函数会导致:超出最大调用堆栈大小?
- oracle - 使用 impdp 导入数据时忽略的字段
- docker - nginx容器未运行
- mysql - 如何使用其属性名称导出表?