Как создать динамический объект с парой ключ-значение - PullRequest
0 голосов
/ 02 октября 2019

Входные данные

var rows = [{
   'type':'action',
   'key':'active_session',
   'count': 4596
},{
   'type':'action',
   'key':'active_session',
   'count': 100
},{
  'type':'action',
  'key':'know_more',
  'count': 100
},{
  'type':"category",
 'key': "reactions",
 'count': 500
}];

Ожидаемый результат

 {"action": {
        "active_session": 4696,
         "know_more":100
    },
 "category":{
     "reaction": 500 
  }
 }

У меня есть входные данные, я не знаю, как добиться ожидаемого результата самым простым способом. Пожалуйста, помогите, я буду очень благодарен.

1 Ответ

4 голосов
/ 02 октября 2019

Вы можете получить желаемый результат, используя метод reduce и использовать объект в качестве значения аккумулятора.

var rows = [{"type":"action","key":"active_session","count":4596},{"type":"action","key":"active_session","count":100},{"type":"action","key":"know_more","count":100},{"type":"category","key":"reactions","count":500}]

const result = rows.reduce((r, { type, key, count }) => {
  r[type] = r[type] || {}
  r[type][key] = r[type][key] || 0
  r[type][key] += count
  return r;
}, {})

console.log(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...