Resumir una matriz de objetos y calcular el valor promedio para cada nombre de objeto único

Tengo una matriz así:

var array = [
     {
       name: "a",
       value: 1 
     },
     {
       name: "a",
       value: 2 
     },
     {
       name: "a",
       value: 3 
     },
     {
       name: "b",
       value: 0 
     },
     {
       name: "b",
       value: 1 
     }
 ];

Y necesito una matriz como esta:

var newarray = [
     {
       name: "a",
       value: 2
     },
     {
       name: "b",
       value: 0.5
     }
 ]

Donde la nueva matriz tiene cada nombre único como un objeto con el valor promedio.

¿Hay una manera fácil de lograr esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta