Я получаю данные из API и хочу отформатировать данные так, чтобы их могла прочитать клиентская сторона.
Я попытался использовать следующий код для создания объекта, но он выглядит хакерским и не заботится о крайних случаях.
function myHackyFunction(data){
result = {}
data.forEach(el => {
const timeStamp = el['time']
result[timeStamp] = { teacher: null, student: null }
})
data.forEach(el => {
const role = el['role']
const timeStamp = el['time']
const age = el['age']
if (role.includes('teacher')) {
result[timeStamp].teacher = age
}
if (role.includes('student')) {
result[timeStamp].student = age
}
})
return result
}
myHackyFunction(data)
Переменная данных будет иметь разную длину, но всегда одинаковую настройку. Иногда она включает в себя роли student
и teacher
, иногда только одну из них.
эти данные ..
const data = [
{
time: 2019,
role: 'student',
age: 22
},
{
time: 2019,
role: 'teacher',
age: 37
},
{
time: 2020,
role: 'teacher',
age: 45
}
]
.. должны выглядеть следующим образом:
const desiredData = {
2019: {
student: 22,
teacher: 37
},
2020: {
student: null,
teacher: 45
}
}