0

What's the best way to merge objects and total its element? I can't figure out how to merge it at the same time total its chats count

here's my array:

  [
   [
    {
      id: 'call_000001',
      date: 2019-04-01T00:00:00.000Z,
      chats: 121,
      missedChats: 0
    },
    {
      id: 'call_000001',
      date: 2019-04-02T00:00:00.000Z,
      chats: 92,
      missedChats: 1
    }
  ],
  [
    {
      id: 'call_000002',
      date: 2019-04-01T00:00:00.000Z,
      chats: 13,
      missedChats: 0
    },
    {
      id: 'call_000002',
      date: 2019-04-02T00:00:00.000Z,
      chats: 12,
      missedChats: 3
    }
  ],
  ]

here's what I want to achieve

[
 {
  id: 'call_000001',
  chats: 213,
  missedChats: 1,
 },
 {
  id: 'call_000002',
  chats: 25,
  missedChats: 3,
 },
]

what's the best way to achieve that? without using underscore or lodash

3

1 Answer 1

1

Try this :

data = [
  [{
      id: 'call_000001',
      date: '2019-04-01T00:00:00.000Z',
      chats: 121,
      missedChats: 0
    },
    {
      id: 'call_000001',
      date: '2019-04-02T00:00:00.000Z',
      chats: 92,
      missedChats: 1
    }
  ],
  [{
      id: 'call_000002',
      date: '2019-04-01T00:00:00.000Z',
      chats: 13,
      missedChats: 0
    },
    {
      id: 'call_000002',
      date: '2019-04-02T00:00:00.000Z',
      chats: 12,
      missedChats: 3
    }
  ]
]


var mergedData = data.map(dataEl => dataEl.reduce((ac, el) => {
  return {
    id: ac.id,
    chats: ac.chats + el.chats,
    missedChats: ac.missedChats + el.missedChats
  }
}));


console.log(mergedData);

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.