Estou criando um aplicativo com Ionic 6 e SQLite para fazer uma lista de mercado e gostaria de categorizar os itens para juntar todos no mesmo card quando houver mais de um item da mesma categoria. Estou com dificuldade para realizar essa junção, quando eu adiciono os primeiros itens que estejam na mesma categoria, ele funciona, mas ao adicionar outra categoria não consigo mais juntar os itens
Meu arquivo .ts
// Funcao para buscar os itens cadastrados
public searchLista() {
this.iEditar = false;
this.iListaMercado = [];
// Faz o GET no SQLite para bucar o que tem salvo
this.cListaMercadoService.listaMercadoAcoes('GET', [])
.then(($return: any) => {
for (let wItens of $return.itens_mercado) {
if (wItens.categoria == '') {
wItens.categoria = 'Diversos';
}
// Validação para verificar se o Array que pego os itens para exibir não está vazio, para que eu possa percorrer ele
if (this.iListaMercado.length > 0) {
for (let i = 0; i < this.iListaMercado.length; i++) {
if (wItens.categoria === this.iListaMercado[i].categoria) {
this.iListaMercado[i].itens.push({
id: wItens.id,
produto: wItens.produto,
quantidade: wItens.quantidade,
unid_medida: wItens.unid_medida,
class: '',
selecionado: false
});
} else {
this.iListaMercado.push({
categoria: wItens.categoria,
itens: [{
id: wItens.id,
produto: wItens.produto,
quantidade: wItens.quantidade,
unid_medida: wItens.unid_medida,
class: '',
selecionado: false
}]
});
}
break;
}
} else {
this.iListaMercado.push({
categoria: wItens.categoria,
itens: [{
id: wItens.id,
produto: wItens.produto,
quantidade: wItens.quantidade,
unid_medida: wItens.unid_medida,
class: '',
selecionado: false
}]
});
}
}
});
}
Interface que estou usando para tipar o iListaMercado
export interface ListaMercado {
categoria: string,
itens: Array<Itens>
}
// Interface para tipagem do array de itens
interface Itens {
id?: number,
produto: string,
quantidade: number,
unid_medida: string,
class: string,
selecionado: boolean
}
Se alguém puder me ajudar a resolver e explicar o que estou fazendo de errado, fico agradecido!