Мой объект, который отображает студенческий идентификатор с отметками, выглядит следующим образом:
[
{id: 111, marks: [{sub: 'eng', mark: 90}, {sub: 'maths', mark: 20}]},
{id: 222},
{id: 333, marks: []},
{id: 444, marks: [{sub: 'eng', mark: 70}]}
]
Я бы хотел уменьшить его следующим образом:
{
marks[0]: "0:eng:90", // studentIndex:subject_name:mark
marks[1]: "0:maths:20",
marks[2]: "3:eng:70"
}
В приведенном выше результате ключ - "marks []", а значение - строка, которая представляет собой сцепление studentIndex, субъекта и оценки.
Таким образом, здесь 0: eng: 90 означает, что студент с индексом 0 набрал 90 баллов по предмету английского
Я использую lodash, и я попробовал следующее:
reduce(studentList, (acc, student, studentIndex) => {
map(get(student, 'marks'), (marks) => {
acc[`marks[${keys(acc).length}]`] = `${studentIndex}:${marks.sub}:${marks.mark}`;
});
return acc;
}, {});
Есть ли другой лучший способ сделать это?