var source = [
{
"id": 8,
"name": "Опер3",
"value": 88,
"date": "2021-01-22"
},
{
"id": 5,
"name": "Опер2",
"value": 452,
"date": "2021-01-12"
},
{
"id": 50,
"name": "Опер20",
"value": 4523,
"date": "2021-01-22"
}
]
var groupByDate = {};
source.forEach(function(item){
if(groupByDate[item.date]){
groupByDate[item.date].push(item)
} else {
groupByDate[item.date] = [item]
}
})
В итоге получаем объект, свойства которого - даты, а значения - массивы элементов этих дат.
Ну и далее перебираем любым удобным образом объект и выводим в DOM.