Home > Mobile >  How to sum an array of objects with a condition in typescript
How to sum an array of objects with a condition in typescript

Time:04-12

Hi I am doing addition of key value from objects of an array. I want to exclude the object from the addition if it has some conditions. Example:

var arrItem = [{"id": 1, "value":100},{"id": 2, "value":300},{"id": 3, "value":400}];

//addition
this.sum = arrItem.map((a:any) => a.value).reduce(function (a:any, b:any) {
          return a   b;
        });

console.log(this.sum) // ====>>> getting 800

I want to exclude object with id==2 from summation. How I can filter this out so that I will get result as ==> 500

CodePudding user response:

You can do it with reduce:

this.sum = arrItem.reduce((acc, val) => {
  if (val.id !== 2) return acc   val.value;
  return acc;
}, 0);

CodePudding user response:

Use Reduce, here is the working example.

var arrItem = [{"id": 1, "value":100},{"id": 2, "value":300},{"id": 3, "value":400}];

const sum = arrItem.reduce((previousValue, currentValue) => {
  if (currentValue.id !== 2) return previousValue   currentValue.value;
  return previousValue;
}, 0);

console.log(sum)

  • Related