@noone182

Мне нужно объединить два массива подкатегории вставить в категории.?

INPUT

let category = [
    {
        id: 20,
        name: "one"
    },
    {
        id: 21,
        name: "two"
    }
];

let subcategory = [
    {
        category: 20,
        id: 1,
        name: "subone"
    },
    {
        category: 21,
        id: 2,
        name: "subtwos"
    },
    {
        category: 21,
        id: 3,
        name: "subtwo"
    },
    {
        category: 21,
        id: 4,
        name: "substwo"
    }
];
OUTPUT

let mergedArr = [
    {
        id: 20,
        name: "one",
        children: [
            {
                category: 20,
                id: 1,
                name: "subone"
            }
        ]
    },
    {
        id: 21,
        name: "two",
        children: [
            {
                category: 21,
                id: 2,
                name: "subtwos"
            },
            {
                category: 21,
                id: 3,
                name: "subtwo"
            },
            {
                category: 21,
                id: 4,
                name: "substwo"
            }
        ]
    }
];
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.values(subcategory.reduce(
  (acc, n) => (acc[n.category]?.children.push(n), acc),
  Object.fromEntries(category.map(n => [ n.id, { ...n, children: [] } ]))
))

или

category.map(n => ({
  ...n,
  children: subcategory.filter(m => m.category === n.id),
}))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы