Javascript 是否有一种算法用于合并具有相同键的对象数组的元素
我有以下数据,我一直在寻找一个算法的参考,该算法用于构建一个返回数组,该数组按字段(例如规程)分组,并推入所有唯一字段 初始数据集:Javascript 是否有一种算法用于合并具有相同键的对象数组的元素,javascript,arrays,typescript,algorithm,Javascript,Arrays,Typescript,Algorithm,我有以下数据,我一直在寻找一个算法的参考,该算法用于构建一个返回数组,该数组按字段(例如规程)分组,并推入所有唯一字段 初始数据集: [ { discipline: 1, originalBudgetDollars: 1114.96 }, { discipline: 2, originalBudgetDollars: 192 }, { discipline: 1, expendedDollars: 1137.24 }, { discip
[
{ discipline: 1, originalBudgetDollars: 1114.96 },
{ discipline: 2, originalBudgetDollars: 192 },
{ discipline: 1, expendedDollars: 1137.24 },
{ discipline: 2, expendedDollars: 55.08 },
{ discipline: 1, forecastAtCompletionDollars: 1276.62 },
{ discipline: 2, forecastAtCompletionDollars: 96 },
{ discipline: 1, earnedValueDollars: 81.6 },
{ discipline: 2, earnedValueDollars: 10636.6 }
]
预期结果:
[
{ discipline: 1, originalBudgetDollars: 1114.96, expendedDollars: 1137.24, remainingDollars: -22.28, forecastAtCompletionDollars: 1276.62, earnedValueDollars: 81.6 },
{ discipline: 2, originalBudgetDollars: 192, expendedDollars: 55.08, remainingDollars: 136.92, forecastAtCompletionDollars: 96, earnedValueDollars: 10636.6 },
]
这个问题没有特定的算法,你可以做的是将这个问题分解成子问题并得到期望的结果。如果将来您要添加
规程:3
数据,那么下面的代码片段也会起作用,但对象中必须有原始预算的美元
和支出的美元
字段(以便我们可以计算剩余美元
)
这里我用了
const数据=[
{学科:1,原始预算直径:1114.96},
{学科:2,原始预算:192},
{纪律:1,支出美元:1137.24},
{纪律:2,支出美元:55.08},
{学科:1,预测完成美元:1276.62},
{学科:2,预测完成美元:96},
{纪律:1,收益价值美元:81.6},
{纪律:2,收益价值美元:10636.6},
];
const obj=数据减少((acc,curr)=>{
常量{规程}=curr;
acc[规程]=对象.赋值(acc[规程]?{},curr);
返回acc;
}, {});
//仅获取对象的值
常量结果=对象值(obj);
//在所有对象中添加剩余美元
结果.forEach((obj)=>{
目标剩余美元=(
对象原始预算美元-对象支出美元
).toFixed(2);
});
控制台日志(结果)
您想在对象或数组中获得结果吗?remainingDollars
从何而来?remainingDollars=originalBudgetDollars-ExpendedDollars原始数据是一个对象数组,希望得到相同的结果。感谢您的参考!