第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

D3.js 中的數(shù)據(jù)操作

D3.js 中的數(shù)據(jù)操作

有只小跳蛙 2021-06-02 16:57:15
我有以下數(shù)據(jù):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"}]我過濾數(shù)據(jù)以獲得dataFiltered = [  {Name:"A", Var:"15", Temp:"20",Lo:"T"},  {Name:"A", Var:"415", Temp:"450",Lo:"F"},  {Name:"A", Var:"24", Temp:"51",Lo:"T"},  {Name:"A", Var:"41", Temp:"40",Lo:"F"}]但我想要一個新的對象數(shù)組,例如:dataNew = [  {Vt:"35", Tv:"5"},  {Vt:"865", Tv:"35"},  {Vt:"75", Tv:"27"},  {Vt:"80", Tv:"-1"}]最后,我想用dataNew呈現(xiàn)匯總數(shù)據(jù)Vt (35+865+75+80)和Tv (5+35+27-1)餅圖上。注意Vt = Var + Temp和Tv = Temp - Var從dataFiltered.我真的不知道過濾數(shù)據(jù)后該怎么做,特別是如何獲取dataNew.我也在這里留下了過濾部分的代碼。var filteredData = data.filter(function(d) {    return d.Name == "A";});
查看完整描述

2 回答

?
慕神8447489

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;}


查看完整回答
反對 回復(fù) 2021-06-11
  • 2 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號