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

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

將數組中多個對象的總和和平均值合并到一個數組中

將數組中多個對象的總和和平均值合并到一個數組中

尚方寶劍之說 2023-09-14 17:56:16
我有一個包含多個對象的數組。我想得到它們的平均值和總和。原始數組示例:[[{count: 2}],[{count: 10}]]最終陣列:Sum array: [{count: 12}]Average array: [{count: 6}]我嘗試使用減少...但是如果我在數組中有多個鍵,它不起作用,因為它只返回一個數字。知道我會如何處理這個問題嗎?for(var i = 0; i < arr.length; i++){    let average = arr[i].reduce((a, b) => a + b) / arr.length;    console.log(average)}
查看完整描述

2 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

您的問題不清楚,但這里有一個使用 .它還跟蹤遇到的每個鍵的總數,以防數組中并非所有對象都具有相同的鍵。您希望結果數組采用的格式尚不清楚,但我展示了一個根據調用結果計算平均值的示例。reduce()reduce()


const arr = [

  {count1: 3, count2: 2}, 

  {count1: 4, count2: 10},

  {count1: 3, count3: 2}

  ];


const sumObj = arr.reduce((a, o) => (

  Object.entries(o).forEach(([k, v]) => (

    a[k] = {...a[k] ?? {sum: 0, total: 0}}

    , a[k]['sum'] += v

    , a[k]['total'] += 1)

    ), a), {});


console.log(sumObj);


const averageArr = Object.entries(sumObj).map(([k, {sum, total}]) => ({key: k, average: sum/total}));


console.log(averageArr);


查看完整回答
反對 回復 2023-09-14
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您可以使用map和reduce,就像給定多個鍵一樣:


const exampleArray = [{swag: 3, count: 2}, {swag: 4, count: 10}];


// converting into array with only the key you want to use

const countArray = exampleArray.map((element) => element.count); // an array with just {count: value} elements in them.


// ... now reduce like normally


查看完整回答
反對 回復 2023-09-14
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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