Я пытаюсь сгруппировать объекты, имеющие одно и то же свойство. Я начинаю с массива объектов, и я хочу закончить массивом, который содержит несколько массивов, каждый из которых содержит объекты с одинаковым свойством.
Скажем, у меня есть этот массив объектов фильма, все ониимеют свойство year, и я хочу сгруппировать все фильмы с одинаковым свойством year в их собственный массив и, наконец, объединить все эти массивы в один массив.
// This is the array I've got
const films = [
{
name='film 1',
year='1992'
},
{
name='film 2',
year='1992'
},
{
name='film 3',
year='1995'
},
{
name='film 4',
year='1995'
},
{
name='film 5',
year='1995'
},
{
name='film 6',
year='1998'
},
{
name='film 7',
year='1998'
},
]
// And this is the array I want to end up with
const filmsSorted = [
[
{
name='film 1',
year='1992'
},
{
name='film 2',
year='1992'
},
]
[
{
name='film 3',
year='1995'
},
{
name='film 4',
year='1995'
},
{
name='film 5',
year='1995'
},
]
[
{
name='film 6',
year='1998'
},
{
name='film 7',
year='1998'
},
]
]
Имейте в виду, что я неу меня заранее есть свойство year
, и он должен динамически работать с любым годом, который я получаю в исходном массиве.
Хотя здесь много вопросов о сортировке и фильтрации массивов, я не смог найти ответк этой конкретной проблеме. Я пытался использовать reduce()
и filter()
и их комбинацию, но я просто не могу разобраться с этим. Я нашел несколько возможных решений (преобразование его в объект и обратно в массив), но мне бы очень хотелось увидеть несколько разных способов решения этой проблемы, чтобы помочь мне лучше рассуждать об этом.