Помогите собрать объект
Пожалуйста помогите из массива объектов
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} ] сделать массив объектов let result = [ {fio: 'Иванов Иван Иванович', Жалоба: {Ожидание: 3, Закрыт: 23}, Благодарность: {Ожидание: 5, Принята: 7}}, {fio: 'Сидоров Сидр Сидорович', Жалоба: {Ожидание: 2, Принята: 9}} ] |
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> |
Часовой пояс GMT +3, время: 02:02. |