如何从多个JSON对象添加值并将值存储在Angular 6中的另一个JSON对象中

问题描述 投票:0回答:1

我有两个不同的JSON对象。一个对象是empList,另一个是holidayList。我想从每个JSON对象添加小时,并将小时总和推送到sumHoursList JSON对象。我正在使用Angular6进行此操作。我没有确切地知道如何重复此操作以获得所需的结果。基本上,我想从empList的数据列表中添加小时,也要从假期列表中添加小时,总和值应追加到sumhourlist

下面是我的代码。

this.empList = [
      {
      'id': 1,
      'name': 'Name1',
      datalist: [
        {
          "date": 1,
          "hours": 6
        },
        {
          "date": 2,
          "hours": 0
        },
        {
          "date": 3,
          "hours": 12
        }
      ]
      },
      {
        'id': 2,
        'name': 'Name2',
        datalist:[
          {
            "date": 1,
            "hours": 0
          },
          {
            "date": 2,
            "hours": 8
          },
          {
            "date": 3,
            "hours": 0
          }
        ]
      },
    ];

    this.holidayList=[
          {
            "date": 1,
            "hours": 0
          },
          {
            "date": 2,
            "hours": 8
          },
          {
            "date": 3,
            "hours": 12
          }
        ]

   sumHoursList = [
     {
            "date": 1,
            "hours": 6
          },
          {
            "date": 2,
            "hours": 16
          },
          {
            "date": 3,
            "hours": 24
          }
   ]

谁能帮我怎么做。

javascript json angularjs ionic3 angular6
1个回答
0
投票

这就是我对问题的理解。您希望每个日期将小时数相加。通过此循环,如果数据列表,则emp数组可以包含一个动态数字。

let empList = [
  {
    'id': 1,
    'name': 'Name1',
    datalist: [
      {
        'date': 1,
        'hours': 6
      },
      {
        'date': 2,
        'hours': 0
      },
      {
        'date': 3,
        'hours': 12
      }
    ]
  },
  {
    'id': 2,
    'name': 'Name2',
    datalist: [
      {
        'date': 1,
        'hours': 0
      },
      {
        'date': 2,
        'hours': 8
      },
      {
        'date': 3,
        'hours': 0
      }
    ]
  },
]

let holidayList = [
  {
    'date': 1,
    'hours': 0
  },
  {
    'date': 2,
    'hours': 8
  },
  {
    'date': 3,
    'hours': 12
  }
]



let sum = holidayList

empList.forEach((emp) => {
  emp.datalist.forEach((obj, i) => {
    sum[i].hours = sum[i].hours + obj.hours
  })
})

console.log(sum)
© www.soinside.com 2019 - 2024. All rights reserved.