Я пытаюсь сгенерировать метод, возвращающий массив из каждых 2d массивов, состоящих из 0 и 1 в JS в 2d квадрате массива. По сути, это тот же вопрос, что и этот: Создайте все возможные комбинации в двумерном массиве
Но в Javascript, без пакетов, и добавьте параметр для размера массива. Например, 2x2 будет:
let arr = new Array(2).fill(0).map(() => new Array(2).fill(0))
combinations(arr, 2) { ... }
returns :
[
[
[0, 0],
[0, 0]
],
[
[0, 0],
[0, 1]
],
[...],
[
[1, 1],
[1, 1]
]
]
Я пробовал с рекурсией, но безуспешно, любая помощь будет признательна.
Редактировать:
Я пытаюсь = g, чтобы написать рекурсивную функцию для решения этой проблемы.
На данный момент у меня есть этот метод:
let arr = new Array(2).fill(0).map(() => new Array(2).fill(0))
const generateCombination = (arr, n) => {
let ret = [];
let tmp;
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
ret.push(arr)
arr[i][j] = 1;
generateCombination(arr.slice(), n-1)
}
}
return ret;
};
, который производит этот вывод:
[
[ [ 1, 1 ], [ 1, 1 ] ],
[ [ 1, 1 ], [ 1, 1 ] ],
[ [ 1, 1 ], [ 1, 1 ] ],
[ [ 1, 1 ], [ 1, 1 ] ],
]