簡體   English   中英

一組項目的總數如何?

[英]How total an array of items?

我有以下數組結構:

let val = [
  {
    currentYear:'11',
    lastYear:'12',
    name:'Bert',
    type:'+'
  },
  {
    currentYear:'2',
    lastYear:'4',
    name:'Ed',
    type:'-'
  }
]

我試圖根據類型總計數字字段。 當類型為'+'時,我添加項目,' - '減去。 那么函數的結果應該是:

{
  currentYear:9,
  lastYear:8
}

Sofar我想出了這個:

const sums = val.reduce((acc, item) => {
  Object.entries(item)
        .filter(([_, v]) => !isNaN(v))
        .forEach(([k, v]) => acc[k] = (acc[k] || 0) + Number(v));
  return acc;
}, {});

我根本不知道如何根據類型添加或減去?

您可以使用reduce並將currentYearlastYear乘以(type === '+' ? 1 : -1)

 let val = [{ currentYear: '11', lastYear: '12', name: 'Bert', type: '+' }, { currentYear: '2', lastYear: '4', name: 'Ed', type: '-' } ]; const total = val.reduce((a, { currentYear, lastYear, type }) => { const mult = type === '+' ? 1 : -1; a.currentYear += mult * currentYear; a.lastYear += mult * lastYear; return a; }, { currentYear: 0, lastYear: 0}); console.log(total); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM