reduce使わなくてもいいみたいです。
料理 = [
{ 名前: 'ぎょうざ', 種類: '中華料理' },
{ 名前: '担々麺', 種類: '中華料理' },
{ 名前: '肉じゃが', 種類: '和食' },
{ 名前: '寿司', 種類: '和食' },
{ 名前: 'スパゲッティー', 種類: 'イタリア料理' },
{ 名前: 'ピッツァ', 種類: 'イタリア料理' }
]
console.log(Object.groupBy(料理, ({ 種類 }) => 種類))
{
"中華料理": [
{
"名前": "ぎょうざ",
"種類": "中華料理"
},
{
"名前": "担々麺",
"種類": "中華料理"
}
],
"和食": [
{
"名前": "肉じゃが",
"種類": "和食"
},
{
"名前": "寿司",
"種類": "和食"
}
],
"イタリア料理": [
{
"名前": "スパゲッティー",
"種類": "イタリア料理"
},
{
"名前": "ピッツァ",
"種類": "イタリア料理"
}
]
}