Показать сообщение отдельно
  #2 (permalink)  
Старый 06.04.2022, 15:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

AlexandrDr,
<pre>
  <script>
let arr = [
    {category: 'Жалоба', status: 'Ожидание', fio: 'Иванов Иван Иванович', total: 3},
    {category: 'Жалоба', status: 'Закрыт', fio: 'Иванов Иван Иванович', total: 23},
    {category: 'Благодарность', status: 'Ожидание', fio: 'Иванов Иван Иванович', total: 5},
    {category: 'Благодарность', status: 'Принята', fio: 'Иванов Иван Иванович', total: 7},
    {category: 'Жалоба', status: 'Ожидание', fio: 'Сидоров Сидр Сидорович', total: 2},
    {category: 'Жалоба', status: 'Принята', fio: 'Сидоров Сидр Сидорович', total: 9}
]
function createObj(arr)
{
   return Object.values(arr.reduce((obj, {category, status, fio, total}) => {
   if(!obj[fio]) obj[fio] = {fio};
   if(!obj[fio][category]) obj[fio][category] = {}
   if(!obj[fio][category][status]) obj[fio][category][status] = 0;
   obj[fio][category][status] += total;
   return obj;
   }, {}))
}
let obj = createObj(arr)
document.write(JSON.stringify(obj, "", 1))

</script>
</pre>
Ответить с цитированием