DM
Size: a a a
DM
DM
C
const f = obj => Object.entries(obj).map(e => e[1].map(x => [e[0], x])).reduce((acc, val) => acc.map(ai => val.map(bi => [ai, bi].flat())).flat()).map(e => e.reduce((acc, xi, j) => (j >>= 1, acc[j] = acc[j] || [], acc[j].push(xi), acc), [])).map(Object.fromEntries)
C
function f1(inp) {
let en = Object.entries(inp);
let keys = en.map(x => x[0])
let ls = en.map(x => x[1].length);
let total = ls.reduce((a,x) => a * x);
let ar = keys.map(_ => 0);
let al = keys.length;
let results = [];
for (let j = 0; j < total; j++) {
let temp = {}
for (let i = 0; i < al; i++) {
if (ar[i] === ls[i]) {
ar[i] = 0;
if (i < al - 1) {
ar[i + 1]++;
}
}
temp[keys[i]] = inp[keys[i]][ar[i]];
}
results.push(temp);
ar[0]++;
}
return results;
}
В
const func = o => Object.entries(o).reduce((acc, [key, values]) => acc.reduce((acc, item) => [...acc, ...values.map(value => ({ ...item, [key]: value }))], []), [{}])
В
DM
В
В
DM
DM
B
В
DM
DM
DM
DM