const result = [...subcategory.reduce(
(acc, n) => (acc.get(n.category)?.children.push(n), acc),
new Map(category.map(n => [ n.id, { ...n, children: [] } ]))
).values()];
const result = category.map(n => ({
...n,
children: subcategory.filter(m => m.category === n.id),
}));
const result = category.map(function(n) {
return {
...n,
children: this[n.id] ?? [],
};
}, subcategory.reduce((acc, n) => ((acc[n.category] ??= []).push(n), acc), {}));