Flutter中如何为存折账单计算累计余额并直接修改原列表
直接在原dataList中添加RunningBalance字段的实现方案
你可以通过forEach遍历原数组,直接为每个对象添加RunningBalance属性,无需创建新数组。核心思路是维护一个累计余额变量,遍历过程中更新该变量并赋值给原对象的新属性。
示例代码
// 初始化累计余额(根据业务逻辑设置初始值,通常为0) let runningBalance = 0; // 遍历原dataList,直接修改每个元素 dataList.forEach(item => { // 按业务规则更新累计余额,这里假设Balance是当日收支净额 runningBalance += item.Balance; // 直接为原对象添加RunningBalance属性 item.RunningBalance = runningBalance; });
补充说明
- 和
map方法不同,forEach不会生成新数组,直接操作原数组里的对象(对象是引用类型,修改属性会直接作用于原数据)。 - 完全避免了新建列表的内存开销,契合你的需求。
- 如果累计余额需要基于
totalIncome和totalExpense重新计算,只需调整更新逻辑即可,例如:runningBalance += item.totalIncome - item.totalExpense;
内容的提问来源于stack exchange,提问作者Irfan Ganatra
相关产品推荐
相关产品推荐

