2 回答

TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊
你可以得到所有你在一個迭代上使用原始數(shù)據(jù)所需要的輸出Array.reduce()來生成一個object與數(shù)據(jù)的新數(shù)組和累積值Vt和Tv,例如:
var data = [
{Name:"A", Var:"15", Temp:"20", Lo:"T"},
{Name:"B", Var:"45", Temp:"40", Lo:"F"},
{Name:"B", Var:"63", Temp:"340", Lo:"T"},
{Name:"A", Var:"415", Temp:"450", Lo:"F"},
{Name:"B", Var:"405", Temp:"940", Lo:"F"},
{Name:"B", Var:"415", Temp:"410", Lo:"T"},
{Name:"A", Var:"24", Temp:"51", Lo:"T"},
{Name:"C", Var:"43", Temp:"40", Lo:"T"},
{Name:"A", Var:"41", Temp:"40", Lo:"F"}
];
function reduceData(data, type)
{
return data.reduce((acc, {Name, Var, Temp}) =>
{
if (Name !== type)
return acc;
let Vt = (+Var) + (+Temp), Tv = Temp - Var;
let len = acc.newData.push({Vt, Tv});
acc.acc_vt += Vt;
acc.acc_tv += Tv;
acc.avg_tv = (acc.avg_tv * (len-1) + Tv) / len;
acc.avg_vt = (acc.avg_vt * (len-1) + Vt) / len;
return acc;
}, {newData: [], acc_vt: 0, acc_tv: 0, avg_vt: 0, avg_tv: 0})
}
console.log(reduceData(data, "A"));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
添加回答
舉報