Я пытаюсь сгруппировать массив объектов, передав ключ, который я хочу сгруппировать, в качестве параметра функции, которую я написал, например, если у меня есть этот массив из 3 объектов:
[{date: "2018-01-01", website: "example.com", revenue: 100},
{date: "2018-01-01", website: "example2.com", revenue:200},
{date: "2018-01-02", website: "example.com", revenue: 300}]
и я передам их своей функции:
groupArr(arr, prop) {
return arr.reduce(function (groups, item) {
const val = item[prop];
groups[val] = groups[val] || [];
groups[val].push(item);
return groups
}, {})
}
результат будет: {2018-01-01: Array(2), 2018-01-02: Array(1)}
, но сейчас я пытаюсь выяснить, как я могу изменить эту функцию вТаким образом, я могу передать два параметра, например, дату и веб-сайт: groupArr(arr,["date","website"]
, чтобы мой результат включал группировку по двум параметрам, что в моем случае будет выглядеть так:
{{[2018-01-01,"example.com"]: Array(1),[2018-01-01,"example2.com"]: Array(1), 2018-01-02: Array(1)}
Я представляю результирующий ключ как массив для удобства, не уверен, что это правильный способ сделать это.Любая идея, как я могу этого достичь?спасибо