折叠JavaScript中的属性值上的对象数组

Fer*_*gie 5 javascript arrays reduce group-by lodash

如何折叠和排列属性以转向:

[ { key: 'black', value: [ '2', '3', '9' ] },
  { key: 'black', value: [ '1' ] },
  { key: 'gold', value: [ '2', '3' ] },
  { key: 'gold', value: [ '1' ] },
  { key: 'red', value: [ '9' ] },
  { key: 'white', value: [ '2', '3' ] },
  { key: 'white', value: [ '1' ] } ]
Run Code Online (Sandbox Code Playgroud)

...变成:

[ { key: 'black', value: [ '1', '2', '3', '9' ] },
  { key: 'gold', value: [ '1', '2', '3' ] },
  { key: 'red', value: [ '9' ] },
  { key: 'white', value: [ '1', '2', '3' ] } ]
Run Code Online (Sandbox Code Playgroud)

...使用javascript。

我觉得应该使用lodash或Array.reduce来做一个相当简单的方法,但是我无法终生确定如何做。