Н
Size: a a a
Н
Q
C
N
C
IS
IS
C
N
Q
N
N
N
Q
N
C
М
C
C
function f(input) {
let keys = Object.keys(input);
function pick(ar) {
return Object.fromEntries(ar.map((x, i)=>
[keys[i], input[keys[i]][x]]
))
}
function loop() {
let results = [];
let pointers = keys.map(_ => 0)
let i = 0;
let total = keys.reduce((p,k) => p * input[k].length, 1)
for (let j = 0; j < total; j++) {
results.push(pick(pointers));
inc()
}
return results;
function inc() {
pointers[0]++;
pointers.forEach((x, i) => {
if (x === input[keys[i]].length) {
pointers[i] = 0;
if (i < pointers.length - 1) {
pointers[i + 1]++;
}
}
})
}
}
return loop()
}
A-