JavaScriptArraysavancado

Agrupar por categoria

Em APIs de e-commerce ou sistemas de inventário, é comum receber listas de produtos e precisar organizá-los por categoria para exibir em seções ou gerar relatórios. Dominar o reduce() para agrupar dados evita loops manuais e deixa o código mais declarativo e fácil de manter.

O PROBLEMA

Use reduce() para agrupar produtos em objeto {categoria: [produtos]}.

EXEMPLO

produtos → {grãos:["arroz","feijão"], laticínios:["leite"]}

SOBRE O CONCEITO

O reduce() percorre o array e acumula um valor. Para agrupar, o acumulador inicial é um objeto vazio {}. Em cada iteração, verifica-se se a categoria já existe: se sim, faz push no array; se não, cria um novo array com o item. O erro comum é não inicializar o array da categoria, o que causa push em undefined. Por exemplo, fazer acc[categoria].push(produto) sem antes criar acc[categoria] = [] gera erro. A solução é usar acc[categoria] = acc[categoria] || [] e então adicionar o item.

RESOLUÇÃO

Mais exercícios de Arrays

JSA015 · Intermediáriosome e everyJSA017 · IntermediárioOrdenar números corretamenteJSA001 · BásicoCriar e exibir arrayJSA002 · Básicopush e pop
Ver todos os exercícios de JavaScript