У меня есть список (массив) матриц в структуре данных, например:
const data = [
{
matrix: {
rows: {
ROW1: {
cols: {
COL1: "4",
COL2: "2"
}
},
ROW2: {
cols: {
COL1: "1",
COL2: "4"
}
},
ROW3: {
cols: {
COL1: "2",
COL2: "1"
}
}
}
},
},
{
matrix: {
rows: {
ROW1: {
cols: {
COL1: "1",
COL2: "6"
}
},
ROW2: {
cols: {
COL1: "2",
COL2: "3"
}
},
ROW3: {
cols: {
COL1: "5",
COL2: "2"
}
}
}
}
}
];
Я хотел бы суммировать значения, определенные в одной и той же паре ROW: COL, и получить одну матрицу, например:
const newMatrix = {
rows: {
ROW1: {
cols: {
COL1: "5",
COL2: "8"
}
},
ROW2: {
cols: {
COL1: "3",
COL2: "7"
}
},
ROW3: {
cols: {
COL1: "7",
COL2: "3"
}
}
}
};
Я не знаю заранее, сколько матриц я могу получить в массиве данных. Я также не знаю заранее, сколько строк и столбцов я получаю.
Я начал с того, что вызвал Reduce () для данных, но застрял, потому что не могу придумать, как найти и затем суммировать данные в ROW: COL пары с одинаковым именем.
const newMatrix = data.reduce(( accumulator, current ) => {
let newMatrix;
// ...???
// find? forEach? Object.entries? for loops? maps inside maps?
// Everything I tried failed
return newMatrix;
});
Я также возился с forEach (), Object.values (), find () и всевозможными циклами for внутри других циклов, но сам продолжаю попадать в какой-то цикл мозга.
Я понимаю, что этого может быть недостаточно для работы, но я новичок в программировании и не знаю, куда идти дальше.
Я застрял на этой самой проблеме 2,5 дня, поэтому даже если бы не было предложено прямого решения, я был бы признателен за любые советы или указания в правильном направлении.
К сожалению, у меня нет сверстников, к которым я могу обратиться за помощью.
Спасибо.