Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

funcao de busca esta retornando o array todo

estou realizando o projeto alura geek, estou com um problema na funcao de busca, esta retornando o array inteiro, estou atilizando o mockApi, fiz conforma na aula porem nao esta retornando como o esperado

e tambem esta retornando se o campo esta vazio

3 respostas

Olá Lucineia, como vai? Espero que esteja bem!

Para te ajudar melhor, seria necessário ver o código que você escreveu para a função de busca. No entanto, posso te dar algumas dicas gerais para resolver esse problema.

Primeiro, verifique se você está passando corretamente os parâmetros para a função de busca. Por exemplo, se você está passando o valor que deseja buscar como argumento da função.

Em seguida, verifique se a lógica da função de busca está correta. Certifique-se de que você está percorrendo o array corretamente e comparando os valores com o que você deseja buscar. Lembre-se de que você precisa retornar apenas os elementos que correspondem ao critério de busca.

Quanto ao problema de retornar algo mesmo quando o campo está vazio, você pode adicionar uma verificação antes de executar a função de busca. Por exemplo, você pode verificar se o campo de busca está vazio e, caso esteja, exibir uma mensagem de erro ou retornar um array vazio.

Se você puder compartilhar o trecho de código da função de busca, posso te ajudar de forma mais específica. Caso contrário, espero que essas dicas te ajudem a resolver o problema. Lembre-se de sempre testar o seu código e fazer ajustes conforme necessário.

Caso tenha dúvidas, fico à disposição!

Espero ter ajudado e bons estudos.

Abraços e bons estudos!

solução!
async function buscaProduto(valor) {
  const conexao = await fetch(`https://64c1b75afa35860baea0c317.mockapi.io/produto?q=${valor}`);
  const conexaoConvertida = await conexao.json();
  return conexaoConvertida;
}
export const conectaApi = {
   listaProdutos, 
   criaProduto,
   buscaProduto
}


parte que puxa a funcao da api,a outra parte do arquivo busca produto é essa abaixo:

async function buscarProduto(evento){
  evento.preventDefault();
  const dadosDePesquisa = document.querySelector("[data-pesquisa]").value;
  const busca = await conectaApi.buscaProduto(dadosDePesquisa); 
  
  console.log(busca)
  const lista = document.querySelector('[data-lista]');
   while(lista.firstChild){
  lista.removeChild(lista.firstChild);
}
  
 busca.forEach(elemento => lista.appendChild(constroiCard(elemento.url, elemento.nome, elemento.preco, elemento.categoria)));
}
const botaoDePesquisa = document.querySelector('[data-botao-pesquisa]');
botaoDePesquisa.addEventListener("click", evento => buscarProduto(evento));

na pesquisa ja tentei trocar o q do query por nome, ambos estão retornando o array inteiro

Olá!

Será que não é esse console.log(busca) que está retornando o array inteiro? Experimente deletar ou comentá-lo.

Não estou nesse curso ainda, mas num outro projeto semelhante que fiz o problema era justamente esse, no console.log