Нет, это, вероятно, не следует рассматривать как лучший способ сделать это функционально - как вы сказали, функциональное программирование должно избегать мутаций, и в этом случае (как в большинстве случаев) (многие) мутации не нужны. Попробуйте создать массивы сразу, используя Array.from
, что не требует ни мутаций, ни переназначения:
const length = 3;
const boardRows = Array.from({ length }, (_, outer) => {
const j = 3 - outer;
const boardRow = Array.from({ length }, (_, i) => (
this.renderSquare(outer * length + i, [j, i + 1])
))
return rowBlock(boardRow);
});