L oop через вложенный объект для вычисления значения с использованием ES6 - PullRequest
0 голосов
/ 28 февраля 2020
{
  "activityDetails": [
    {
      "activityDate": "02-05-2020 00:00:00",
      "pointDetails": [
        {
          "points": 5000,
          "pointType": "SSM"
        },
        {
          "points": 9652,
          "pointType": "JSM"
        },
        {
          "points": 4826,
          "pointType": "BQS"
        }
      ]
    },
    {
      "activityDate": "03-05-2020 00:00:00",
      "pointDetails": [
        {
          "points": 78000,
          "pointType": "SSM"
        },
        {
          "points": 9952,
          "pointType": "JSM"
        },
        {
          "points": 4926,
          "pointType": "BQS"
        }
      ]
    }
  ]
}

Есть ли способ рассчитать точку в ES6. В основном мне нужно добавить pointType SSM и JSM, т. Е. 5000 + 9652 = 14652.

Я попробовал следующее, чтобы перебрать объект для вычисления точек.

const rates = this.activityList.map((item: { pointDetails: any; }) => item.pointDetails)
                this.activityList.reduce((sum: any, rates: any) => {
                    if (rates.pointType === 'SSM' || rates.pointType === 'JSM') {
                      sum += rates.sum;
                    }
                    console.log(sum);
                    return sum;
                  }, 0)

1 Ответ

0 голосов
/ 29 февраля 2020

Ultra basi c?

let result = 0;

this.activityList.forEach((activity) => {
  activity.pointDetails.forEach((point) => {
    if (point.pointType === ''JSM' || point.pointType === 'SSM') {
      result += point.points;
    }
  });
});
...