亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

試圖將reduce函數包裝在另一個函數中以使其更通用

試圖將reduce函數包裝在另一個函數中以使其更通用

慕碼人2483693 2022-11-03 10:01:45
我的對象如下所示: electionResults = {  constituency_1:{    party1:'200',    party2:'400'    ...  },  constituency_2:{    party1:'100',    party2:'500'    ...  },  ...}我正在統計這樣的結果:Object.values(electionResults).reduce((t, {party1}) => t + +party1, 0)我希望能夠像這樣包裝它:function partyTally(myParty){   return Object.values(electionResults).reduce((t, myParty) => t + +party1, 0)}但無法弄清楚如何傳遞myParty給reduce回調函數。我自己從 tsv 文件創建了對象,因此可以在需要時輕松重新配置它。提前感謝您的幫助。編輯所需功能應為:function partyTally(myParty){   return Object.values(electionResults).reduce((t, myParty) => t + +**myParty**, 0)}
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

派對1是問題所在。這里:


function partyTally(myParty){

  return Object.values(electionResults).reduce((t, c) => t + Number(c[myParty]), 0)

}

例如,通過“party1”。


這是一次統計所有選區的所有政黨的方法:


electionResults = {

  "constituency_1": {

    "party1": "200",

    "party2": "400"

  },

  "constituency_2": {

    "party1": "100",

    "party2": "500"

  }

};


partiesTally = Object.values(electionResults).reduce((result, constituency) => {

  Object.keys(constituency).forEach(party => {

    if(result[party]==undefined) result[party]=0;

    result[party]+=(+constituency[party]);

  });

  return result;

},{});


console.log(partiesTally);


查看完整回答
反對 回復 2022-11-03
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

您可以通過使用完整參數來完成此操作,Object.values而不是嘗試在回調中立即解構。

function partyTally(myParty){
  return Object.values(electionResults).reduce((t, constituencyResults) => t + +constituencyResults[myParty], 0)
  }


查看完整回答
反對 回復 2022-11-03
  • 2 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號