Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

243
Visualizações
How Can I get the Items of a category with its subcategory

I have two models for Category and subcategory.

The category model returns an array of data like

category = [ 
    {_id: '1', name: 'Appliances', slug: 'appliances'}, 
    {_id: '2', name: 'Computer', slug: 'computer'}, 
    {_id: '3', name: 'Phones', slug: 'phones'}, 
]

The subcategory model returns

subcategory = [
   { _id: '101', name: 'fridge', category: '1'}, 
   {_id: '102', name: 'Radio', category: '1'}, 
   {_id: '103', name: 'Apple', category: '3'}, 
   {_id: '105', name: 'Toshiba', category: '2'}, 
   {_id: '109', name: 'HP', category: '2'}, 
]

I want to return something that looks like this:

[
  {_id: '1', name: 'Appliances, subCategories: [
       { _id: '101', name: 'fridge', category: '1'}, 
       {_id: '102', name: 'Radio', category: '1'}, 
    ] 
  },
  {_id: '2', name: 'Computer, subCategories: [
       {_id: '105', name: 'Toshiba', category: '2'}, 
       {_id: '109', name: 'HP', category: '2'}, 

    ] 
  },
  {_id: '3', name: 'Computer, subCategories: [
       {_id: '103', name: 'Apple', category: '3'}, 
    ] 
  }
]

Here is the code i have so far

const [categories, setCategories] = useState([])
  const [subCategories, setSubCategories] = useState([])

  useEffect(() => {
    loadSubCategories()
  }, [])


  const loadSubCategories = async () => {
    const res = await getAllSubCategories()
    setCategories(res.subCategory)
    setTotal(res.length)
  }


const getAllSubCategories = () => {
  return request('/subCategories', {
    method: 'GET',
  })
}

This only loads my subcategories tho. my category route is /categories

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

category = [ 
    {_id: '1', name: 'Appliances', slug: 'appliances'}, 
    {_id: '2', name: 'Computer', slug: 'computer'}, 
    {_id: '3', name: 'Phones', slug: 'phones'}, 
]

subcategory = [
   { _id: '101', name: 'fridge', category: '1'}, 
   {_id: '102', name: 'Radio', category: '1'}, 
   {_id: '103', name: 'Apple', category: '3'}, 
   {_id: '105', name: 'Toshiba', category: '2'}, 
   {_id: '109', name: 'HP', category: '2'}, 
]

const result = category.map(e => {
    e.subCategories = subcategory.filter(a => a.category == e._id);
    return e;
})

console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

const category = [ 
    {_id: '1', name: 'Appliances', slug: 'appliances'}, 
    {_id: '2', name: 'Computer', slug: 'computer'}, 
    {_id: '3', name: 'Phones', slug: 'phones'}, 
];

const subcategory = [
   { _id: '101', name: 'fridge', category: '1'}, 
   {_id: '102', name: 'Radio', category: '1'}, 
   {_id: '103', name: 'Apple', category: '3'}, 
   {_id: '105', name: 'Toshiba', category: '2'}, 
   {_id: '109', name: 'HP', category: '2'}, 
];

const newCategoryArray = category.map(v => {
  const sub = [];
  subcategory.forEach(i => {
    if(i.category === v._id){
      sub.push(i);
    }
  })
  v.subcategory = sub;
  return v;
});

https://playcode.io/873264/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda