javascript - 从每笔交易的交易数组中计算当前金额
问题描述
我想在该特定交易的交易列表中显示交易后钱包中的当前可用金额。
这是我的代码
let Transactions = [{title:'txn1',amount:100,type:'credit',date:'01-01-2021'},{title:'txn1',amount:150,type:'credit',date:'01-02-2021'},{title:'txn1',amount:60,type:'debit',date:'01-03-2021'},{title:'txn1',amount:50,type:'debit',date:'01-04-2021'}];
let totalCredit = Transactions.reduce((amount,txn)=>{ return (txn.type === 'credit' && (parseFloat(amount) + parseFloat(txn.amount)) || amount) },0);
let totalDebit = Transactions.reduce((amount,txn)=>{ return (txn.type === 'debit' && (parseFloat(amount) + parseFloat(txn.amount)) || amount) },0);
let currentBalance = totalCredit - totalDebit;
let txncards=[];
let txn_cb = 0;
Transactions = Transactions.sort((a,b)=>{
a.date = new Date(a.date), b.date = new Date(b.date)
if(a.date<b.date) return 1;
if(a.date>b.date) return -1;
return 0;
})
Transactions.forEach((txn)=>{
txn_cb = txn_cb + txn.amount;
txn.cb = txn_cb;
txncards.push(makecard(txn));
})
$('.card-body').html(txncards);
const makecard = (txn) =>{
//this returns HTML ul li list jQuery Object filled with details provided by txn object
}
结果
如您所见,按日期降序排序,列表的顺序与预期不符;可用余额在 li 中不正确。Txn 1 应位于底部,可用余额应为 100 Txn 2 应位于中间,可用余额应为 200 Txn 3 应位于顶部,可用余额应为 150
那么我在哪里做错了?请忽略轻微的错别字
解决方案
推荐阅读
- pandas - 使用 Seaborn 抛光散点图图例
- postgresql - Postgres 中的 Oracle UTL_FILE 异常替代方案
- r - 如何使用 R 基于多个条件为数据框中的每个 id 子集数据
- tcl - Regsub 没有从 URL 操作字符串
- python - GAN:Gradient Tape 计算判别器的零梯度
- c++ - Google Cloud PubSub Streaming Pull 永远挂起
- javascript - 如何使用 django 显示在 textarea 中输入的数据?
- mysql - 从 Google Apps 脚本调用 MySQL SP 时突然中止
- c# - .NET Core WebApi 从中间件向用户返回未经授权的代码
- mysql - MySQL 服务器在使用 CONVERT_TZ 时卡住了