Javascript: Transforme a matriz da resposta do objeto via lodash ou sublinhado ou corejavascript

Estou trabalhando com o highChart para criar um gráfico de colunas. De qualquer maneira, cheguei à criação da seguinte matriz de obj através da comunicação com o banco de dados.

Agora, eu preciso transformar o seguintesource matriz de objeto abaixo da saída.

var source = [
{data: 258, name: '2014'}
{data: 18, name: '2016'}
{data: 516, name: '2014'}
{data: 0, name: '2014'}
{data: 354, name: '2014'}
{data: 18, name: '2016'}
]`

Converta essa matriz de objeto em

Output

[{
    name: '2014',
    data: [258, 516, 354]
  }, {
    name: '2016',
    data: [18, 0, 18]
}]

Basicamente, quero que minha matriz agrupe por nome (ano) e os dados devem estar na matriz

Aqui estão as soluções que eu apliquei.

var source = [];
_.each(source, function(singlerec) {
      source.push({
        name: singlerec.name,
        data: singlerec.data  // Here It only assign single record
      });
    });

questionAnswers(3)

yourAnswerToTheQuestion