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

Resultado igual a 0

Oi pessoal Meu código me entrega o valor 0 quando executo, ao invés de 5 como na aula. Já revisei o código e não consigo encontrar por que.

const listaLivros = require ('./arrayLivros');

function encontraMenores(pivo, array) {
    let menores = 0;

    for (let atual = 0; atual < array.length; atual++) {
        let produtoAtual = array[atual]
        if (produtoAtual.preco < pivo.preco) {
            menores++
        }
    }

    return menores
}

console.log(encontraMenores(listaLivros[2], listaLivros));
3 respostas

Olá Guilherme! Tudo bem?

Pelo que pude perceber, seu código está correto e deveria funcionar. No entanto, é possível que o erro esteja na lista de livros que você está utilizando.

Verifique se a lista está sendo importada corretamente e se os valores dos preços e propriedades dos livros estão corretos.

Contudo, caso não ache nenhuma inconsistência, peço que compartilhe todos os arquivos do seu projeto, via GitHub ou Drive do Google. Assim entenderei melhor a sua situação e poderei lhe ajudar melhor.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Oi Armano! tudo bem sim e contigo? Eu fui acompanhando a aula e montando o código de acordo com o que era mostrado e piorei um pouco as coisas hahah Me apareceu um typeError aqui num (.indexOf) que me deixou até um pouco perdido. Vou deixar aqui em baixo o link do GitHub. desde já agradeço a atenção.

https://github.com/GuilhermeRoledo/algoritmoOrdenacao

solução!

Olá Guilherme, peço perdão pela demora em retornar.

Analisando o código que você compartilhou, pude perceber que você ainda estava utilizando uma versão mais antiga da lista de livros, onde era dividida em "edFolha" e "edGalho". Logo, essa forma de representação da lista em duas estava fazendo aquele erro no seu projeto.

Isso se dá pelo fato de quando a exportamos ela vem na forma de lista de listas, tendo duas listas na posição 0 e 1. Então quando é chamado a função indexOf() passando o valor de pivo para ela, ocorre um erro, pois a posição passada não existe, além de causar outros erros ao decorrer do código por conta da representação.

Como solução, você deve utilizar a mesma lista da instrutora, contendo todos os livros em apenas uma lista. Estarei deixando a lista logo abaixo:

const listaLivros = [
  {
    titulo: "Go",
    preco: 45
  },
  {
    titulo: "C++",
    preco: 35
  },
  {
    titulo: "Java",
    preco: 30
  },
  {
  titulo: "PHP",
  preco: 15
  },
  {
    titulo: "Elixir",
    preco: 50
  },
  {
    titulo: "Rust",
    preco: 22
  },
  {
    titulo: "Scala",
    preco: 40
  },
  {
    titulo: "Ruby",
    preco: 28
  },
  {
    titulo: "JavaScript",
    preco: 25
  },
  {
    titulo: "C#",
    preco: 33
  },
  {
    titulo: "Python",
    preco: 20
  },
]

module.exports = listaLivros;

Espero ter conseguido lhe ajudar. Caso tenha mais problemas, estarei à disposição.

Grande abraço!